我正在尝试编写一个由一个JComboBox
组成的小型GUI程序,该程序必须使用从组合框中选择的颜色绘制ContentPane
。
我不知道为什么它没有像预期的那样工作。当我启动main方法时,即使没有comboBox也会生成一个空的JFrame,我知道我已经添加到了JFrame中。
这是我的主要方法:
import javax.swing.JFrame;
public class TestRGBComboBox {
public static void main(String[] args) {
JFrame frame = new RgbComboBoxFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
这是我的JFrame类
public class RgbComboBoxFrame extends JFrame{
private static final int FRAME_WIDTH = 300;
private static final int FRAME_HEIGHT = 300;
private JComboBox colorComboBox;
private ActionListener listener;
public void RgbComboBoxFrame() {
colorComboBox = new JComboBox();
colorComboBox.addItem("RED");
colorComboBox.addItem("GREEN");
colorComboBox.addItem("BLUE");
colorComboBox.setEditable(true);
listener = new AddListener();
paintContentPane();
createPanel();
setSize(FRAME_WIDTH,FRAME_HEIGHT);
}
class AddListener implements ActionListener{
public void actionPerformed(ActionEvent event){
paintContentPane();
}
}
private void paintContentPane(){
Color c = (Color)colorComboBox.getSelectedItem();
getContentPane().setBackground(c);
}
private void createPanel(){
JPanel controlPanel = new JPanel();
colorComboBox.addActionListener(listener);
controlPanel.add(colorComboBox);
add(controlPanel,BorderLayout.SOUTH);
}
}
答案 0 :(得分:1)
尽管所有代码都是为了创建面板并向其添加内容,但您永远不会调用它们。 public void RgbComboBoxFrame(){}
应该是构造函数,因此写为public RgbComboBoxFrame(){}