有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    我认为实际上需要将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);
    }
    
    }
    

    虽然正如有人在评论中所说,这是一种非常迂回的方式,有点不必要。虽然我也有一段时间没有使用JavaGUI JFrame/JLabel等,但我无法确认所有这些都正常工作