好吧,所以我只是简单地定义一个这样的组合框......
JComboBox yearSelect = new JComboBox();
现在,我甚至没有将它添加到面板或任何其他内容,我刚刚定义了它。当我运行应用程序时,什么都没有显示..当我注释掉这一行..应用程序显示其他面板,就像我想要它...有什么我做错了吗?也许我忘记了与组合框有关的事情?我想我错过了可能是愚蠢的事。
这是我整个内容的构造函数。
private Container pane; // content pane
private JPanel calendarPanel; // where our calendar will go
private JPanel datePanel; // where "todays date" will go
private JPanel pnlToolbar; // tool bar for moving in the year
private JPanel bottomPanel;
private JPanel yearPanel;
private JLabel lbCurrentMonth;
private JLabel dateLabel;
private JButton monthBack;
private JButton monthForward;
private JComboBox yearSelect;
private Date today = new Date();
private int currentMonth = today.getMonth();
private int currentYear = today.getYear();
final private String [] days = {"Sunday", "Monday", "Tuesday",
"Wednesday", "Thursday", "Friday",
"Saturday"};
final private String [] months = {"January", "Febuary", "March", "April",
"May", "June", "July", "August",
"September", "October", "November",
"December"};
public Calendar() {
// call the calendar frame class constructor (Window class)
// this function will setup our basic window
super();
// define the current date of the calendar as today
// below are attributes to our window. They define what content
// is on them.
// define our window
pane = window.getContentPane();
pane.setLayout(new BorderLayout());
calendarPanel = new JPanel(new FlowLayout());
calendarPanel.setBorder(BorderFactory.createTitledBorder("Calendar"));
pnlToolbar = new JPanel(new FlowLayout(FlowLayout.CENTER, 40, 5));
pnlToolbar.setSize(300, 45);
//////////////////////////////////////////////////////////////////////
/* setup our lower date panel, that displays todays date
and the year drop down menu */
// for "todays date"
dateLabel = new JLabel(returnDateString());
dateLabel.setFont(new Font(null, Font.BOLD, 12));
datePanel = new JPanel(new FlowLayout(FlowLayout.LEFT, 5, 5));
datePanel.add(new JLabel("Todays Date: "), BorderLayout.WEST);
datePanel.add(dateLabel, BorderLayout.EAST);
// for "year select"
// yearSelect = new JComboBox();
yearPanel = new JPanel(new FlowLayout(FlowLayout.RIGHT, 5, 5));
//yearPanel.add(yearSelect);
bottomPanel = new JPanel(new BorderLayout());
bottomPanel.add(datePanel, BorderLayout.WEST);
//bottomPanel.add(yearPanel, BorderLayout.EAST);
// setup the tool bar panel
lbCurrentMonth = new JLabel(months[currentMonth]);
monthBack = new JButton("<<");
monthForward = new JButton(">>");
monthForward.setEnabled(true);
monthBack.setEnabled(true);
pnlToolbar.add(monthBack);
pnlToolbar.add(lbCurrentMonth);
pnlToolbar.add(monthForward);
// add everything to the content panel
pane.add(calendarPanel, BorderLayout.CENTER);
pane.add(bottomPanel, BorderLayout.SOUTH);
pane.add(pnlToolbar, BorderLayout.NORTH);
答案 0 :(得分:2)
您需要添加模型才能显示数据。请参阅JComboBox.setModel。
答案 1 :(得分:0)
是的,我还没有附上我的其余代码。即使我没有将对象添加到面板,它也会这样做。我只是简单地实例化对象,仅此而已。有任何想法吗?此外,我已经创建了一个单独的应用程序,以确保我正确地在这里做组合框是我注意到的。它在sperate应用程序中完全相同..下面..(非常脏)
public class Main {
public static void main(String[] args) {
String [] selectFill = {"Cat", "Dog"};
JFrame window = new JFrame("Window");
window.setBounds(0, 0 , 800, 600);
window.setVisible(true);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setLayout(null);
//JComboBox selectBox = new JComboBox(selectFill);
JLabel check = new JLabel("Select: ");
JPanel contentPanel = new JPanel(new FlowLayout());
Container pane = window.getContentPane();
pane.add(contentPanel);
pane.setLayout(new FlowLayout());
contentPanel.add(check);
//contentPanel.add(selectBox);
}
}
由于某些奇怪的原因,当我调整窗口大小或微小时,它会加载内容。或..如果我注释掉组合框对象的行,它也会显示内容。