JCombobox选项后面的画布
问题描述:
我已采取
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] –