我要实现的功能是,一个JFrame里有两个按钮。按下第一个按钮JFrame加载JPanel1,按下第二个切换到JPanel2。
主要的代码如下:
jButton1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if (selected != null)
Frame1.this.remove(selected);
selected = new Panel1(); selected.setBounds(0, 0, 400, 300);
Frame1.this.add(selected);
Frame1.this.repaint();
}
});Panel1里有一个JLabel和一个在JScrollPane里的JList
Panel2里有一JList和一个在JScrollPane里的JList
问题是:
Panel1里的的JLabel能正常显示,在JScrollPanel里的JList空空如也,什么也没有
Panel1里的的JList 能正常显示,在JScrollPanel里的JList也不能显示
请问怎么才能让在JScrollPanel里的JList显示其中的内容?
另外我也试过,在JScrollPanel里的JTable能够正常显示。 谢谢!Panel1和Panel2的代码如下public class Panel1 extends JPanel {
public Panel1() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} private void jbInit() throws Exception {
this.setLayout(null);
DefaultListModel model=new DefaultListModel();
model.addElement("1");
model.addElement("2");
jList1.setModel(model);
jScrollPane1.setBounds(new Rectangle(59, 62, 285, 131));
jLabel1.setText("jLabel1");
jLabel1.setBounds(new Rectangle(62, 25, 151, 23));
this.add(jScrollPane1);
this.add(jLabel1);
jScrollPane1.getViewport().add(jList1);
} JScrollPane jScrollPane1 = new JScrollPane();
JList jList1 = new JList();
JLabel jLabel1 = new JLabel();
}public class Panel2 extends JPanel {
public Panel2() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} private void jbInit() throws Exception {
this.setLayout(null);
DefaultListModel model=new DefaultListModel();
model.addElement("1");
model.addElement("2");
jList1.setModel(model);
jList2.setModel(model);
jScrollPane1.setBounds(new Rectangle(86, 61, 236, 161));
jList2.setBounds(new Rectangle(73, 11, 65, 29));
this.add(jScrollPane1);
this.add(jList2);
jScrollPane1.getViewport().add(jList1);
} JScrollPane jScrollPane1 = new JScrollPane();
JList jList1 = new JList();
JList jList2 = new JList();
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货