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 旨在与布局管理器一起使用。您可以轻松地使用 JPanelBoxLayout:

  1. 创建一个 JPanel 并将布局设置为垂直 BoxLayout
  2. 创建 JLabel 并将其添加到面板
  3. 创建并JTextField到面板
  4. 将面板添加到框架。

阅读 Layout Managers 上的 Swing 教程了解更多信息。您将找到一个工作示例,它展示了如何使用 BoxLayout 创建带有面板的框架。