我的JFrame
窗口似乎不会出现在我一直在观看的教程中,我一直在做所有事情,但没有任何反应。它甚至没有给我一个错误,这使它变得更糟。这是代码:
import javax.swing.*;
import java.awt.*;
public class Window {
public class Window {
public void newWindow() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
JLabel label = new JLabel("I am a star! A beautiful shining star!", SwingConstants.CENTER);
frame.getContentPane().add(label);
frame.setVisible(true);
}
}
(这是第二类,主要是正确链接到这一类)
答案 0 :(得分:1)
JFrame默认使用名为BorderLayout的layout manager。要查看添加到框架中的组件,您应该参考其javadocs。但是,这里最简单的选择是使用FlowLayout。您还应该使用JFrame的pack()方法,根据Oracle的说法:
使此窗口的大小适合其子组件的首选大小和布局。如果任一维度小于上一次调用setMinimumSize方法所指定的最小大小,则会自动放大窗口的最终宽度和高度。
因此,这应该适合你:
import javax.swing.*;
import java.awt.*;
public class Window {
public void newWindow() {
JFrame frame = new JFrame();
frame.getContentPane().setLayout(new FlowLayout()); // specify the layout manager
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
JLabel label = new JLabel("I am a star! A beautiful shining star!", SwingConstants.CENTER);
frame.getContentPane().add(label);
frame.pack(); // handles sizing of the window
frame.setVisible(true);
}
}
请注意,我删除了重复的public class Window
声明,这可能是您根本没有看到框架的原因。如果它仍然不适合您,我认为您没有调用newWindow()
方法。如果您希望只需拨打new Window();
即可显示该窗口,则应将public void newWindow()
更改为public Window()
。
答案 1 :(得分:0)
import javax.swing.*;
import java.awt.*;
public class Window {
public void newWindow() {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JLabel label = new JLabel("I am a star! A beautiful shining star!", SwingConstants.CENTER);
frame.getContentPane().add(label);
frame.setVisible(true);
frame.pack();
}
}
答案 2 :(得分:0)
当您创建应用程序时,它应该在主方法中有String []args
。
一旦完成,您的代码应该看起来像这样!
import javax.swing.JFrame;
public class myCode() {
JFrame myFrame;
public static void main(String []args) {
myFrame.setTitle("myApp");
myFrame.setSize(800, 600);
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myFrame.setVisible(true)
//your done!
}
答案 3 :(得分:-2)
从我看到的,你没有设置JFrame的大小。试试,
frame.setSize(500, 500);