大家好,请参见以下代码片段:

JFrame loginFrame = new JFrame("Login");

  loginFrame.setSize(500,400);
  JPanel loginPanel = new JPanel();
  loginPanel.setLayout(new GridLayout(0,2));

  JLabel header = new JLabel("Login");
  JLabel header2 = new JLabel("blahvlah");
  JLabel loginLabel = new JLabel("Login");
  JTextField loginField = new JTextField(24);
  JLabel passLabel = new JLabel("Password");
  JTextField passField = new JTextField(24);

  loginPanel.add(header);
  loginPanel.add(header2);
  loginPanel.add(loginLabel);
  loginPanel.add(loginField);
  loginPanel.add(passLabel);
  loginPanel.add(passField);

  loginFrame.add(loginPanel);
  loginFrame.setVisible(true);
loginframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);


JTextFields存在于应用程序中,但我无法在其中输入任何内容?也没有光标,这是什么问题?另外,我关闭时的出口似乎不起作用?

谢谢

最佳答案

您发布的代码无法编译(在最后一行键入loginframe而不是loginFrame)。解决此问题后,以下程序:

public class JFrameTest {
    public static void main(String[] args) {
        JFrame loginFrame = new JFrame("Login");

        loginFrame.setSize(500,400);
        JPanel loginPanel = new JPanel();
        loginPanel.setLayout(new GridLayout(0,2));

        JLabel header = new JLabel("Login");
        JLabel header2 = new JLabel("blahvlah");
        JLabel loginLabel = new JLabel("Login");
        JTextField loginField = new JTextField(24);
        JLabel passLabel = new JLabel("Password");
        JTextField passField = new JTextField(24);

        loginPanel.add(header);
        loginPanel.add(header2);
        loginPanel.add(loginLabel);
        loginPanel.add(loginField);
        loginPanel.add(passLabel);
        loginPanel.add(passField);

        loginFrame.add(loginPanel);
        loginFrame.setVisible(true);
        loginFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
}


运行得很好。我可以在两个JTextFields中输入文本,也可以关闭JFrame:

java - JTextField-Java swing-没有光标?-LMLPHP

08-04 12:16