Java/Swing - 为 TextField 设置标题
Java/Swing - Set title for TextField
我找不到任何 class 来设置 TextField 的标题。因此,我决定做一个。我的问题很简单。
我真的需要在我的 class 中包含 JFrame 吗?或者也许有其他方法可以解决这个问题。
这是我的 GUI class。
public GUI() {
JFrame f = new JFrame("MyLibrary");
JTextField tf = new JTextField();
tf.setBounds(50, 50, 400, 30);
tf.setFont(new Font("Arial", Font.BOLD, 16));
FieldTitle ft = new FieldTitle(f, tf, "Book title");
f.add(tf);
f.setSize(1280, 720);
f.setLocationRelativeTo(null);
f.setLayout(null);
f.setVisible(true);
}
这是我的 FieldTitle class。
public FieldTitle(JFrame f, Component c, String title) {
JLabel l = new JLabel(title);
l.setBounds(c.getBounds().x, c.getBounds().y - 20, c.getWidth(), 20);
f.add(l);
}
感谢您的时间和精力。祝你有美好的一天!
不要使用空布局。不要使用 setBounds()。
Swing 旨在与布局管理器一起使用。您可以轻松地使用 JPanel
和 BoxLayout
:
- 创建一个
JPanel
并将布局设置为垂直 BoxLayout
- 创建
JLabel
并将其添加到面板
- 创建并
JTextField
到面板
- 将面板添加到框架。
阅读 Layout Managers 上的 Swing 教程了解更多信息。您将找到一个工作示例,它展示了如何使用 BoxLayout 创建带有面板的框架。
我找不到任何 class 来设置 TextField 的标题。因此,我决定做一个。我的问题很简单。
我真的需要在我的 class 中包含 JFrame 吗?或者也许有其他方法可以解决这个问题。
这是我的 GUI class。
public GUI() {
JFrame f = new JFrame("MyLibrary");
JTextField tf = new JTextField();
tf.setBounds(50, 50, 400, 30);
tf.setFont(new Font("Arial", Font.BOLD, 16));
FieldTitle ft = new FieldTitle(f, tf, "Book title");
f.add(tf);
f.setSize(1280, 720);
f.setLocationRelativeTo(null);
f.setLayout(null);
f.setVisible(true);
}
这是我的 FieldTitle class。
public FieldTitle(JFrame f, Component c, String title) {
JLabel l = new JLabel(title);
l.setBounds(c.getBounds().x, c.getBounds().y - 20, c.getWidth(), 20);
f.add(l);
}
感谢您的时间和精力。祝你有美好的一天!
不要使用空布局。不要使用 setBounds()。
Swing 旨在与布局管理器一起使用。您可以轻松地使用 JPanel
和 BoxLayout
:
- 创建一个
JPanel
并将布局设置为垂直 BoxLayout - 创建
JLabel
并将其添加到面板 - 创建并
JTextField
到面板 - 将面板添加到框架。
阅读 Layout Managers 上的 Swing 教程了解更多信息。您将找到一个工作示例,它展示了如何使用 BoxLayout 创建带有面板的框架。