Java Swings JTextField 未正确显示,它看起来像一条缝

标签 java swing jtextfield gridbaglayout

我创建了一个 JLabel,它显示背景图像,然后添加三个按钮和一个 JTextField,以及 JLable 的布局code> 是 GridBagLayout,但主要问题是 JTextField 的大小。我的错误是什么?我尝试过 preferredSize 以及 setBounds。我是 GridBagLayout 的新手。

    p = new JPanel();
    ImageIcon img = new ImageIcon("C:/Users/manpreet/Desktop/G.L.E.W/3.jpg");
    l = new JLabel(img);

        practice = new JButton("Practice (No Time Limit)");
        Challenge = new JButton("Challenge (60 Seconds)");

        l.setLayout(g);
        practice.setFont(new Font("Garamond", Font.BOLD, 20));
        practice.setForeground(Color.yellow);
        practice.setBackground(Color.black);

Challenge.setBackground(Color.black);
    Challenge.setFont(new Font("Garamond", Font.BOLD, 20));
        Challenge.setForeground(Color.yellow);


        gbc.gridx = 0;
        gbc.gridy = 0;

        l.add(practice,gbc);

        gbc.gridwidth=1;
    Insets insets1 = new Insets(2,2,2,2);
        gbc.insets = insets1;

        gbc.gridx = 2;
        gbc.gridy = 0;

        l.add(Challenge,gbc);
        gbc.gridx=1;
        gbc.gridy = 1;

        t = new JTextField("TextField");
        //t.setPreferredSize(new Dimension(150,20));      
        //t.setBounds(5,5,20,20);

        start = new JButton("start");
        t.setVisible(true);
        start.setVisible(true);
        l.add(t,gbc);
        gbc.gridx=1;
        gbc.gridy = 2;
        l.add(start,gbc);           
        p.add(l);
        f.add(p);       
        f.pack();
        practice.addActionListener(this);
        Challenge.addActionListener(this);

最佳答案

首先,如果您希望人们花时间查看您的代码,那么您应该:

  1. 使用有意义的变量名称。 “l”“t”没有任何意义,很难按照代码理解这些变量代表什么。
  2. 遵循 Java 命名约定。变量名称不应以大写字符开头。看起来您的所有变量名称(“挑战”除外)都是正确的。保持一致!!!

JTextField not appearing properly, it is appearing like a vertical line

当框架中没有足够的空间以首选尺寸显示组件时,就会发生这种情况。然后,GridBagLayout 将以最小尺寸显示组件,这就是为什么您会得到一个非常小的文本字段。

基本代码看起来很合理,因为您执行了 pack()。然而,也许在其他地方你用 setSize(...) 或其他东西覆盖 pack() 。

如果您需要更多帮助,请发布适当的 SSCCE这说明了你的问题。

关于Java Swings JTextField 未正确显示,它看起来像一条缝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23634360/

相关文章:

java - Eclipse:更改ctrl+shift+/的 block 注释样式

java - 使用 App Engine 数据存储查找重叠范围

java - 将 JButton 添加到 JPanel

java - 使用操作更新另一个类中的实例变量

java - 使图像在 JFrame 内容 Pane 中可滚动

java - JTextField 验证

java - Hadoop 映射减少 : Algorithms

java - JFileChooser 中的问题

java - 通过 JTextField 快速搜索 JTable 中的批量数据

java - 显示 ArrayList 中的文本