簡體   English   中英

為什么我的JScrollPane不顯示我的JPanel?

[英]Why doesn't my JScrollPane shows my JPanel?

我有一個JPanel,希望它能夠滾動,因此我將其添加到JScrollPane中,但是我的JScrollPane不能完全顯示我的面板。 只是顯示了它的一個很小的角,它也沒有滾動。 但是,當我僅將LPanel添加到我的JFrame時,它可以正確顯示! 有人可以告訴我我在做什么錯嗎?

有關我的代碼的信息:

  • LPanel是從JPanel擴展而來的,我已經覆蓋了繪畫。 但正如我所說,油漆效果很好! 它有自己的寬度和高度為2 ^ k。
  • k是面板中的行數。

這是我的代碼:

public class Graphics extends JFrame {
  LPanel panel;
  int k;
  public Graphics(int k1) {
    setLayout(null);
    this.k = k1;
    panel = new LPanel(k);
    panel.setSize(panel.width * 30, panel.height * 30);
    new CoveringwithLs(k, panel);
    JScrollPane pane = new JScrollPane(panel);
    pane.setLocation(20, 20);
    if (k < 4) {
      pane.setSize(panel.width * 30, panel.height * 30);
      this.setSize(panel.width * 30 + 80, panel.height * 30 + 80);
    } else {
      pane.setSize(panel.width * 30, 600);
      this.setSize(panel.width * 30 + 80, 600);
    }
    getContentPane().add(pane);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);
  }
  public static void main(String[] args) {
    new Graphics(3);
  }
}

誰能幫我?

我無法添加示例,

當然可以。 你已經有了。 現在,您需要按照給出的建議進行操作,並使用布局管理器代替空布局。

LPanel是從JPanel擴展而來的,我已經覆蓋了繪畫。

通過覆蓋paintComponent()方法而不是paint()方法來完成自定義繪制。

它有自己的寬度和高度為2 ^ k。

您需要重寫面板的getPreferredSize()方法以返回尺寸。 然后,滾動窗格將正常運行。

您是否已將滾動條添加到ScrollPane。 例如

 JScrollPane pane = new JScrollPane(panel, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);

您需要為JPanel 設置首選大小 ,否則JScrollPane不知道它需要用滾動條支持的組件有多大。 setSize具有不同的用途,在此cas中還不夠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM