JButton来自不同的班级

时间:2014-03-05 21:19:00

标签: java swing jframe jbutton


请帮我解决这个问题。
如何从不同的类创建JButton,甚至可能吗?
第一个按钮在这里,第二个按钮不是:

import javax.swing.JButton;
import javax.swing.JFrame;

public class Source {

    public static void main(String[] args){
        JFrame jf = new JFrame();
        jf.setLayout(null);
        jf.setSize(640, 360);
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JButton jb = new JButton("first button");
        jb.setBounds(50, 50, 110, 20);

        jf.add(jb);
        jf.add(new Button());
    }

}

class Button extends JButton {
    public Button(){
        JButton jb = new JButton("second button");
        jb.setBounds(0, 0, 110, 20);
    }
}

提前谢谢你。 最好的问候。

1 个答案:

答案 0 :(得分:4)

在非静态类方法中执行的代码使用隐式this引用操作,引用您创建的实例并使用(或者在构造函数的情况下,对您正在创建的内容的引用)调用这些方法,所以你会执行以下操作来修复您的代码,方法调用在此处引用您在“jf.add(new Button());”上创建的“new Button()”;“:

更改

    JButton jb = new JButton("second button");
    jb.setBounds(0, 0, 110, 20);

    setText("second button");
    setBounds(0, 0, 110, 20);