Java Swing 布局问题

BaBu 发布于 2016/07/01 18:01
阅读 391
收藏 0

  菜鸟一枚  搞iOS的 被老大赶鸭子上架 用java写个小程序  

    已实现菜单栏 ,在菜单栏中选择excel表后显示出来  但现在我选择了excel后直接弹出一个新的窗口显示,并不是在菜单栏下面显示 求大神帮帮忙 

public static class test2 extends JFrame{ 
private static final long serialVersionUID = 1L;   
static final int WIDTH = 600;   
static final int HEIGHT = 300;   
public test2() { super("ceshui");  
final JRootPane rp = new JRootPane();  
super.setContentPane(rp);  
JMenuBar menubar1 = new JMenuBar();  
rp.setJMenuBar(menubar1);  
JMenu menu1 = new JMenu("文件");  
JMenu menu2 = new JMenu("设置");  JMenu menu3 = new JMenu("运行");  
JMenu menu4 = new JMenu("关于");  
 menubar1.add(menu1);  menubar1.add(menu2);  menubar1.add(menu3)
 menubar1.add(menu4);  
 JMenuItem item1 = new JMenuItem("打开");  JMenuItem item2 = new JMenuItem("保存");
  JMenuItem item3 = new JMenuItem("另存");  JMenuItem item4 = new JMenuItem("退出");
   // 二级菜单  
JMenu menu5 = new JMenu("串口");   JMenuItem item6 = new JMenuItem("配置");  
JMenuItem item7 = new JMenuItem("执行用例");  JMenuItem item8 = new JMenuItem("暂停");
  JMenuItem item9 = new JMenuItem("停止");  JMenuItem item10 = new JMenuItem("导出结果");
  JMenuItem item11 = new JMenuItem("串口1");  JMenuItem item12 = new JMenuItem("串口2");
  JMenuItem item13 = new JMenuItem("串口3");   
menu1.add(item1);  menu1.add(item2);  menu1.add(item3);  menu1.add(item4);  
menu2.add(menu5);  menu2.add(item6);  menu3.add(item7);  menu3.add(item8);
  menu3.add(item9);  menu3.add(item10);   
//二级菜单添加子选项  menu5.add(item11);  menu5.add(item12);  menu5.add(item13)
  this.setVisible(true);  this.pack();   
item1.addActionListener(new ActionListener() {
@Override  public void actionPerformed(ActionEvent e) { 
fileChooser = new FileChooser();   
fileChooser.setListener(new Listerner() {
@Override  public void methord1(String path) {  System.out.println("a =" +path);  
// 创建table表格显示出来
myTable = new MyTable(path);  
JTable table = new JTable(myTable);  
JFrame f = new JFrame()
//                            this.add(table, BorderLayout.CENTER); 
 f.add(table,BorderLayout.CENTER);  f.setVisible(true);   }
                    });   }
            });  }
    }
 完全没接触过 程序很乱  

加载中
0
f
fmyhust
还没有学习到这 帮不上忙 对不住
B
BaBu
没事 互相学习啊
0
烟雨三月
烟雨三月

因为你在文件选择器的方法中新 new 了一个 Frame,然后把这个新的 Frame 设为了可见。

JTable table = new JTable(myTable);  
JFrame f = new JFrame(); 
f.add(table,BorderLayout.CENTER);


可以把 JRootPane rp 改成成员变量,然后把 table 加到 rp 中去,注意防止重复添加。


B
BaBu
回复 @烟雨三月 : 嗯 谢谢 已经可以了
烟雨三月
烟雨三月
回复 @BaBu : JRootPane.getContentPane()
B
BaBu
还是不行啊 我看了下教程,说JRootPanel面板中除了菜单条外,还有一个内容面板是添加组件的。JMenuBar是位于LayeredPanel上边缘,JContentPanel则填充了整个可查看区域。 可我根本找不到JContentPanel这个类
B
BaBu
谢谢 上班了去试下
0
蓝水晶飞机
蓝水晶飞机

弄个NetBeans来,拖控件,这样界面的东西一个个写累死啊。

不建议这么牛拌直接写Swing布局代码。

B
BaBu
我这个界面应该算是简单吧 菜单栏 然后下面空白区域显示table 不过这个布局确实挺蒙的 习惯iOS的布局了
0
zigzagroad
zigzagroad
如果不需要打开多个文件的话,JTable可以在启动时添加到面板上;平常设置为隐藏,打开文件时设置为显示。
B
BaBu
能否给出具体点的代码呢 对java不熟悉 自己找都不知道去哪找
0
rick-bao
rick-bao
呵呵,能理解你的难处。  到这个网站学习下 http://www.yiibai.com/swing/swing_jframe.html ,看能否帮到你 。
0
B
BaBu

引用来自“烟雨三月”的评论

因为你在文件选择器的方法中新 new 了一个 Frame,然后把这个新的 Frame 设为了可见。

JTable table = new JTable(myTable);  
JFrame f = new JFrame(); 
f.add(table,BorderLayout.CENTER);


可以把 JRootPane rp 改成成员变量,然后把 table 加到 rp 中去,注意防止重复添加。


已经实现了
0
r
read678
学习一下.
返回顶部
顶部