SWing组建操作没显示?
package com.dcst;
import javax.swing.*;
public class XianShi extends JFrame{
JPanel jp1,jp2;
JMenuBar jmb;
JMenu jm1,jm2,jm3,jm4;
JComboBox jcb;
JMenuItem jmt1,jmt2;
JTable jt;
JScrollPane jcp;
public XianShi(){
jp1=new JPanel();
jmb=new JMenuBar();
jm1=new JMenu("鱼类");
jm2=new JMenu("肉类");
jm3=new JMenu("素类");
jm4=new JMenu("汤类");
String []item={"1","2","3","4","5","6","7","8","9","10"};
jcb=new JComboBox(item);
jmt1=new JMenuItem("模糊查询");
jmt2=new JMenuItem("价格低到高");
jm1.add(jmt1);
jm2.add(jmt2);
jmb.add(jm1);
jmb.add(jm2);
jmb.add(jm3);
jmb.add(jm4);
jmb.add(jcb);
jp1.add(jmb);
jp2=new JPanel();
jt=new JTable();
jcp=new JScrollPane(jt);
jp2.add(jcp);
this.add(jp1);
this.add(jp2);
this.setTitle("汤逊湖宾馆点菜系统");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setSize(300, 300);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new XianShi();
}
}
------解决方案--------------------this.setJMenuBar(jmb);
得设置JFrame的这个属性啊
------解决方案--------------------this.setVisible(true);
this.setSize(300, 300);
setVisible(true) 要放在代码最后.
------解决方案--------------------自已多试,楼上的讲的。
------解决方案--------------------你没有格局设置!显示不出来,swing必须注重格局,还有代码写的太乱,不规范,你加上 this.setLayout(new GridLayout(2,1));就可以显示出来了!
------解决方案--------------------JFrame默认为BorderLayout布局,你的jp2把jp1覆盖了,而jp2上是空的,所以什么都不显示,建议如4楼所说,在构造方法第一句加上 setLayout(new java.awt.GridLayout(2,1));