我想创建一个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);
}
}
答案 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等,所以我无法确认一切正常。