Java外部类JComboBox缺少选择
好的,在重新思考工资计算器的设计之后,我正在尝试将程序模块化为可重用的部分。我首先在一个类中创建一个JComboBox,将其添加到另一个类中创建的JFrame中,然后在主类中调用JFrame 当我单独测试我的组合框时,它工作了。但是,当我在类中创建它并将其添加到window类时,我失去了我添加的字符串数组。你知道我哪里出错了吗 我的主要班级:Java外部类JComboBox缺少选择,java,swing,class,jframe,jcombobox,Java,Swing,Class,Jframe,Jcombobox,好的,在重新思考工资计算器的设计之后,我正在尝试将程序模块化为可重用的部分。我首先在一个类中创建一个JComboBox,将其添加到另一个类中创建的JFrame中,然后在主类中调用JFrame 当我单独测试我的组合框时,它工作了。但是,当我在类中创建它并将其添加到window类时,我失去了我添加的字符串数组。你知道我哪里出错了吗 我的主要班级: import javax.swing.*; import java.awt.*; public class WindowTesting {
import javax.swing.*;
import java.awt.*;
public class WindowTesting
{
public static void main(String[] args) {
CreateWindow gui = new CreateWindow();
gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
CreateCombo deptBox = new CreateCombo();
}
}
我的窗口课
import javax.swing.*;
import java.awt.*;
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
/**
*
* @author bsmith624
*/
public class CreateWindow extends JFrame {
public CreateWindow() {
JFrame frame1;
CreateCombo box1 = new CreateCombo();
frame1 = new JFrame("Department Combo Box");
frame1.setSize(400,200);
frame1.add(box1);
frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame1.setVisible(true);
}
}
最后是我的JComboBox类:
import javax.swing.*;
import java.awt.*;
public class CreateCombo extends JComboBox {
public static String [] deptList = {"Marketing","IT","Accounting","Development","Payroll","Facilities"};
/**Creates the combo box
* with department names
*/
public CreateCombo () {
JComboBox combo = new JComboBox (deptList);
combo.setVisible(true);
}
}
您正在
CreateCombo
中创建另一个JComboBox,这不是必需的,因为您的CreateCombo
是一个JComboBox
你必须设置模型
public CreateCombo () {
super(); // this call JComboBox superConstructor is implicit if you don't put it
this.setModel(new DefaultComboBoxModel(depList));
this.setVisible(true);
}
或者可能是一个更好的设计将使这个构造函数
public CreateCombo(Object[] array ){
super(array);
}
我对你的设计不是很确定,我想你必须回顾一下,你有一个类CreateCombo,它是一个JComboBox,也许你不想要这个,也许你只想要一个JComboBox工厂。非常感谢你。我使用了超级(数组)并且它工作了!我创建这个组合框类的想法是,如果我的程序的另一部分需要一个带有部门列表的组合框,我可以创建这个对象并添加它。你不必为此扩展JComboBox。。。您可能想阅读有关工厂模式的信息