-1
我已採取
JFrame
。 我加了Canvas
到框架。 我在框架中添加了JToolbar
。 我將StatusBarPanel
(擴展爲JPanel
)添加到框架。JCombobox選項後面的畫布內部工具欄我添加了一個文本框,一個按鈕和3個組合框。
現在,每當我寫在文本框中的東西,然後點擊組合框,組合框打開,但內容都隱藏在畫布後面。
否則,只要我不在文本框中寫入任何內容並單擊組合框,組合框就會打開。
如何解決這個問題? (我工作的java 8)
Inside class MyFrame extends JFrame{
.....
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
setSize(screenSize.width - 60, screenSize.height);
Canvas canvas = new Canvas();
canvas.setFocusable(true);
canvas.setBackground(Color.darkGray);
add(canvas);
MyToolbar myTb = new MyToolbar(myfr);
myTb.initialize();
.....
}
Inside class MyToolbar extends JToolbar{
.....
MyToolbar(MyFrame myframe){
toolbar = new JToolBar("My Toolbar");
toolbar.setBorder(new EmptyBorder(new Insets(8,8,8,8)));
this.myframe = myframe;
}
void initialize(){
JTextField textField = new JTextField("Write something...");
toolbar.add(textField);
toolbar.addSeparator();
JComboBox<String> jComboBox = new JComboBox<String>(new String[] { "abc" });
jComboBox.setSize(40, 20);
toolbar.add(jComboBox);
this.myframe.add(toolbar, BorderLayout.NORTH);
}
.....
}
更新了反映您的問題最少的代碼你的問題。到底,這是你的興趣儘可能得到最好的答案 –
*「我添加了Canvas'框架。」*爲什麼?爲什麼不簡單地使用另一個'JPanel'?這聽起來像是混合輕量級問題(例如Swing) &重量級(例如AWT)組件,但首先我們應該知道是否真的有必要這樣做 –
@BranislavLazic請注意,註釋中的[mcve]會自動擴展到[mcve] –