如何将多个类链接到一个类中

时间:2017-06-28 17:26:31

标签: java

我想创建一个JFrame,上面有一个JLabel,上面写着"简单文字"。但不是通常的方式。我希望这样做,JFrame在一个标签中单独作为一个类,在另一个标签中单独作为Jlabel。我该怎么做?我按照下面的说明进行了操作,但文本没有显示在窗口上。

public class FirstClass {

    public static void main (String [] args) {

        SecondClass sc = new SecondClass ();
        ThirdClass tc = new ThirdClass ();

        sc.newWindow ();
        tc.newText ();
    }
}

import javax.swing.JFrame;

public class SecondClass {

    public void newWindow () {
        JFrame jf = new JFrame ("Text Window");
        jf.setVisible(true);
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        jf.setSize(500, 500);
    }
}

import javax.swing.JLabel;

public class ThirdClass {

    public void newText (){
        JLabel jl = new JLabel ("Simple Text");
        jl.setVisible(true);
        jl.setBounds(50, 50, 50, 50);
        add (jl);
    }
}

1 个答案:

答案 0 :(得分:0)

我相信您需要将JLabel实际添加到JFrame中,因为现在您只需要一个独立的JFrame和一个独立的JLabel。在您创建JLabel的类中,您希望将其返回为...

public JLabel newText (){
    JLabel jl = new JLabel ("Simple Text");
    jl.setVisible(true);
    jl.setBounds(50, 50, 50, 50);
    return jl;
}

然后与JFrame相同

import javax.swing.JFrame;

public class SecondClass {

public JFrame newWindow () {
    JFrame jf = new JFrame ("Text Window");
    jf.setVisible(true);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jf.setSize(500, 500);
    return jf;
}

然后在您连接它们的第三个类中,将JLabel添加到JFrame。

public class FirstClass {

public static void main (String [] args) {

    SecondClass sc = new SecondClass ();
    ThirdClass tc = new ThirdClass ();

    JFrame frame = sc.newWindow ();
    JLabel label = tc.newText ();
    frame.add(label);
}

}

虽然正如有人在评论中所说,这是一种非常迂回的方式来做到这一点,这有点不必要。虽然我还有一段时间没有使用Java GUI JFrame / JLabel等,所以我无法确认一切正常。