0
我有一個JTabbedPane選項卡內的JScrollPane。在該JScrollPane中,我放置一個JPanel,其背景爲紅色,其大小已明確設置。JScrollPane繪圖組件本身
這就是我得到:
注意,第二圖像,其中容器框架已調整大小時,組件被滾動條元素下繪製 。
這是怎麼回事?我已經嘗試過所有涉及組件的佈局管理器的每個組合(除了JPanel之外還有其他組件) - 除了在一個大的空白矩形下面,我不能得到任何東西來繪製(是嗎?一個背景,)
代碼:??
在主JFrame的子類:
// Called once on startup/layout.
public void refreshGUIState() {
for (int i = 0; i < client.getFrameStackLength(); i++) {
InferenceFrame frame = client.getFrame(i);
JScrollPane pane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,
JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
JPanel wtf = new JPanel();
pane.setBackground(Color.YELLOW);
wtf.setBackground(Color.red);
wtf.setSize(100,100);
wtf.setPreferredSize(wtf.getSize());
pane.add(wtf);
workspace.addTab(Integer.toString(i), pane);
}
}
public GuiClient() throws CliException, ParticleSourceException {
super("L4 Interactive Prover");
setSize(800,600);
mainArea = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true);
mainArea.setDividerSize(2);
mainArea.setBackground(Color.DARK_GRAY);
getContentPane().add(mainArea);
/* ... menu bar init ... */
toolspace = new JPanel();
workspace = new JTabbedPane();
mainArea.add(toolspace);
mainArea.add(workspace);
this.validate();
refreshGUIState();
}
編輯:懷疑JScrollPane的不知何故沒有建立視加入了第一個孩子的時候,下如預期,我也嘗試了三個參數的構造函數。同樣的行爲。
重新編輯:除了我犯了錯誤並留在add()調用中。哎呦。看起來就是這樣。
我的猜測是你忘了把東西添加到滾動窗格中。 – Laurel
我在「pane.add(wtf);」的行上這樣做。代碼就在那裏......你可以看到它在圖像中繪製,它只是在一個灰色的矩形下面。所以......。 – BadZen
你在哪裏設置框架可見? – Laurel