我正在学习使用 JFrame,以便我可以开始构建一些应用程序,但是,我在让面板显示组件时遇到了很多麻烦。到目前为止,我创建的代码只是为了练习和感受实际的 JFrame 库。
这是我的代码:
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.*;
public class GUI extends JFrame {
public static void main(String[] args){
new GUI();
}
/*
* This is the constructor of the GUI. It sets the dimension,
* the visibility, and the positioning of the frame relative
* to the users dimension of their screen size.
*/
public GUI(){
//'this' is in reference to the frame being created
this.setSize(500, 400);
//this.setLocationRelativeTo(null);
this.setVisible(true);
Toolkit tk = Toolkit.getDefaultToolkit();
Dimension dim = tk.getScreenSize(); //will hold height and width
//Grabs the height and width positioning
//of the screen and centers the window
int xPos = (dim.width /2) - (this.getWidth() / 2);
int yPos = (dim.height /2) - (this.getHeight() / 2);
this.setLocation(xPos, yPos);
//This prevents someone from resizing the frame
//By default this method is true.
this.setResizable(false);
//Sets how the frame will close
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Sets the title of the frame
this.setTitle("Woot I created a frame!");
/*
* The panel is used to hold all of the different
* labels and components within the frame.
*/
JPanel thePanel = new JPanel();
JLabel label1 = new JLabel("Tell me something");
label1.setToolTipText("Click if you need help");
thePanel.add(label1);
//Creates a button
JButton button1 = new JButton("OK");
button1.setBorderPainted(true);
button1.setContentAreaFilled(true);
button1.setToolTipText("This is my button");
thePanel.add(button1);
//Creates a text field
JTextField txtField = new JTextField("Type here", 15);
txtField.setToolTipText("It's a field");
//Adds txtField to the Frame
thePanel.add(txtField);
//Adds thePanel to the Frame originally created
this.add(thePanel);
}
}
当我运行它时,会出现一个显示窗口,但我没有看到文本字段。当我注释掉文本字段时,按钮和标签就会出现。