JTextField在最小化时调整大小 [英] JTextField resizing upon minimize

查看:161
本文介绍了JTextField在最小化时调整大小的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在JFrame中有一个JTextField以及一个JTextArea.但是,当应用程序运行时,如果我最小化窗口,则会调整JTextField的大小.通常它的高度是原来的两倍或三倍,但是每次调整大小的方式并不一致.我不知道为什么会这样.我并不是真正地寻求直接的解决方案,只是一些可能导致问题的可能原因.如果您能在这里帮助我,那就太好了.谢谢

I have a JTextField as well as a JTextArea in a JFrame. When the application runs however, the JTextField gets resized if I minimize the window. It usually doubles or triples in height, but it's not consistent in how it resizes each time. I have no idea why this could be happening. I'm not really asking for a direct solution, just some possible things that could be causing the problem. If you could help me out here that'd be great. Thanks

这是我用来初始化它的代码:

here's the code I'm using to initialize it:

public class Console extends JPanel implements ActionListener, Serializable {
    boolean ready = false;
    protected JTextField textField;
    protected JTextArea textArea;
    private final static String newline = "\n";
    Game m_game;
    Thread t;

public Console(Game game) {
    super(new GridBagLayout());

    m_game = game;
    textField = new JTextField(20);
    textField.setPreferredSize(null);
    textField.addActionListener(this);

    textArea = new JTextArea(20, 60);
    textArea.setEditable(false);
    textArea.setWrapStyleWord(true);
    textArea.setLineWrap(true);
    Font comic = new Font("Serif", Font.PLAIN, 14);
    textArea.setFont(comic);
    JScrollPane scrollPane = new JScrollPane(textArea);

    //Add Components to this panel.
    GridBagConstraints c = new GridBagConstraints();
    c.gridwidth = GridBagConstraints.REMAINDER;

    c.fill = GridBagConstraints.HORIZONTAL;
    c.fill = GridBagConstraints.BOTH;
    c.weightx = 1.0;
    c.weighty = 1.0;
    add(scrollPane, c);
    add(textField, c);
}

public void actionPerformed(ActionEvent evt) {
    String text = textField.getText();
    m_game.input = text;
    textField.selectAll();
    textArea.setCaretPosition(textArea.getDocument().getLength());
    m_game.wait = false;
    synchronized (m_game){
        ready = true;
        m_game.notifyAll();
    }
}

public void createAndShowGUI() {
    //Create and set up the window.
    JFrame frame = new JFrame("Game");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //Add contents to the window.
    frame.add(new Console(m_game));

    //Display the window.
    frame.pack();
    frame.setVisible(true);
}

推荐答案

我认为它与布局管理器有关. http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html

I think it's connected with Layout Manager. http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html

这篇关于JTextField在最小化时调整大小的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆