在Java swing中,我的主框架上没有任何内容
我正在阅读《核心Java第一卷-基础知识第九版-霍斯特曼岛和康奈尔岛加里_2013》一书,并仍在学习Java,尤其是Swing和AWT,但我对书中的一项任务有疑问。 任务是构造一个包含3个扇区的框架,其中包含用户名和密码。将文本区域居中,并使用按钮将其置于南部。主框架采用边框布局。当用户输入用户名和密码并单击“插入”按钮时,将在文本区域键入用户名和密码。以下是结果的图片:在Java swing中,我的主框架上没有任何内容,java,swing,Java,Swing,我正在阅读《核心Java第一卷-基础知识第九版-霍斯特曼岛和康奈尔岛加里_2013》一书,并仍在学习Java,尤其是Swing和AWT,但我对书中的一项任务有疑问。 任务是构造一个包含3个扇区的框架,其中包含用户名和密码。将文本区域居中,并使用按钮将其置于南部。主框架采用边框布局。当用户输入用户名和密码并单击“插入”按钮时,将在文本区域键入用户名和密码。以下是结果的图片: 因此,当我尝试这样做时,我得到了一个小窗口,如下所示: 我错在哪里?我不明白。 这是扩展JFrame的类 import
因此,当我尝试这样做时,我得到了一个小窗口,如下所示:
我错在哪里?我不明白。 这是扩展JFrame的类
import java.awt.*;
import javax.swing.*;
import java.lang.*;
public class MainFrame extends JFrame {
public MainFrame() {
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
setSize(width / 2, height / 2);
setLayout(new BorderLayout());
JPanel northPanel = new JPanel();
northPanel.setLayout(new GridLayout(2,2));
northPanel.add(new JLabel("Username: ", JLabel.RIGHT));
JTextField textField = new JTextField();
northPanel.add(textField);
northPanel.add(new JLabel("Password: ", JLabel.RIGHT));
JPasswordField passwordField = new JPasswordField();
northPanel.add(passwordField);
add(northPanel, BorderLayout.NORTH);
JTextArea textArea = new JTextArea(8, 20);
JScrollPane centerPanel = new JScrollPane(textArea);
add(centerPanel, BorderLayout.CENTER);
JPanel southPanel = new JPanel();
JButton insertButton = new JButton("Insert");
southPanel.add(insertButton);
add(southPanel, BorderLayout.SOUTH);
}
}
我的MainTestMethod如下所示:
import java.awt.*;
import javax.swing.*;
public class MainTestProgram {
public static void main(String[] args) {
JFrame mainFrame = new JFrame();
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setTitle("Krisko Beatz");
mainFrame.setVisible(true);
mainFrame.setLocation(500, 100);
}
}
更改
JFrame mainFrame=newjframe()代码>到JFrame mainFrame=new mainFrame()代码>
你可以删除
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
setSize(width / 2, height / 2);
而是调用pack()代码>在构造函数的末尾,它将生成更可靠的UI大小更改JFrame mainFrame=new JFrame()代码>到JFrame mainFrame=new mainFrame()代码>
你可以删除
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int width = screenSize.width;
int height = screenSize.height;
setSize(width / 2, height / 2);
而是调用pack()
在构造函数的末尾,它将生成更可靠的UI大小ChangeJFrame mainFrame=new JFrame()代码>到JFrame mainFrame=new mainFrame()代码>投票关闭作为一个微不足道的印刷错误。更改JFrame mainFrame=new JFrame()代码>到JFrame mainFrame=new mainFrame()代码>投票结束作为一个微不足道的印刷错误。谢谢你工作完美,然后请接受作为答案谢谢你工作完美,然后请接受作为答案