我在程序中设置每个按钮的大小和位置,怎么不起作用?还有程序产生窗口,点击关闭按钮只能关闭窗口,不能关闭进程,应该如何改?
部分代码:
                  ……
this.setTitle("test");
this.setBounds(300,250,500,200);
this.setLayout(null);
j1.setBounds(60,100,400,50);
this.add(j1);
jb1.setSize(100,50);
jb1.setLocation(120,100);
this.add(jb1);

解决方案 »

  1.   

    this.setLayout(null);
    你的这个this指的是什么?你可以这样操作:JPanel panel=new JPanel();
    panel.setLayout(null);
    JLabel label=new JLabel("Label");
    label.setBounds(*,*,*,*);
    panel.add(label);
    是需要将面板布局设置布局为null,再将组件添加到面板上,最后再将面板添加到Frame上。至于你说的点击关闭按钮只能关闭窗口,不能关闭进程是因为你没有用对方法。具体请参考
    API--JFrame的setDefaultCloseOperation()方法。
      

  2.   

    多谢1楼。我有些问题没讲清楚。
    实际定义的类派生自JFrame,所以可以直接借用this操作。问题是:当我在程序中指定按钮的位置,使几个按钮排成一行时,程序执行时未达到代码要求的效果,而仅仅排成一行。应该如何处理?
    public class test extends JFrame
    {
      JButton jb1=new JButton("拷贝");
      JButton jb2=new JButton("乱序");
      JButton jb3=new JButton("聚类");
      public test()
      {
        this.setBounds(300,250,500,200);
        this.setLayout(null);
        jb1.setSize(100,50);
    jb1.setLocation(120,100);
    this.add(jb1);
        jb2.setSize(100,50);
    jb2.setLocation(180,100);
    this.add(jb2);
        jb3.setSize(100,50);
    jb3.setLocation(240,100);
    this.add(jb3);
        ……………………
    }
      

  3.   

    直接在JFrame上添加 Button ?
      

  4.   

    先用getContentPane()方法获得JFrame的内容面板,再对其加入组件
    Frame 不是容器。。直接添加会出错
      

  5.   

    Container container=getContentPane();
    container.setLayout(new FlowLayout());
    container.add(......);