【问题标题】:JTextField isn't appearingJTextField 没有出现
【发布时间】:2017-02-27 14:05:13
【问题描述】:

我希望 JTextField 使用边框布局出现在面板的中心,但它没有出现,按钮出现但 JTextField 没有..

import java.awt.*;
import javax.swing.*;
public class cal {

    public static void main(String[] args) {
        JFrame frame= new JFrame();
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 300);
        frame.setLayout(new FlowLayout());
        JPanel panel= new JPanel();
        panel.setLayout(new BorderLayout());
        JTextField answer= new JTextField("0");
        panel.add(answer, BorderLayout.CENTER);
        frame.add(panel);
    }

}

【问题讨论】:

  • 只有在添加了所有组件后才调用frame.setVisible(true);
  • 什么按钮?你这里没有按钮......你也应该pack框架

标签: java swing jframe jtextfield


【解决方案1】:

添加组件后,您必须在框架上调用 setVisible(true)。

import java.awt.BorderLayout;
import java.awt.FlowLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class cal {

    public static void main(final String[] args) {
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(400, 300);
        frame.getContentPane().setLayout(new FlowLayout());
        JPanel panel = new JPanel();
        panel.setLayout(new BorderLayout());
        JTextField answer = new JTextField("0");
        panel.add(answer, BorderLayout.CENTER);
        frame.getContentPane().add(panel);
        frame.pack();
        frame.setVisible(true);
    }

}

【讨论】:

  • 解释更改内容以及进行更改的原因。比较代码无助于理解您做出更改的原因。
  • 虽然这段代码 sn-p 可以解决问题,但including an explanation 确实有助于提高帖子的质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
猜你喜欢
  • 2014-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
相关资源
最近更新 更多