Java - Eclipse JTextField太大了

时间:2013-01-12 22:02:44

标签: java swing jframe jtextfield layout-manager

我使用Eclipse中的Window Builder向JTextField添加了JPanel,无论我尝试了什么,文本字段都显示如下:

ScreenShot http://gyazo.com/f36ebc2ea02d049c7b22fe7301146ccd.png?1358027862

我尝试更改首选尺寸,最大尺寸和最小尺寸,但仍然显示如下。

我该如何解决这个问题?我做错了什么?

提前致谢。

更新

<小时/> 代码:(全部由Google的Window Builder自动生成)

import java.awt.BorderLayout;
import java.awt.EventQueue;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JTextField;
import javax.swing.JTextPane;
import java.awt.Dimension;


public class Main extends JFrame {

private JPanel contentPane;
private JTextField textField;

/**
 * Launch the application.
 */
public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                Main frame = new Main();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

/**
 * Create the frame.
 */
public Main() {
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 450, 300);
    contentPane = new JPanel();
    contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);

    textField = new JTextField();
    textField.setSize(new Dimension(6, 3));
    textField.setMinimumSize(new Dimension(6, 5));
    textField.setMaximumSize(new Dimension(6, 3));
    textField.setPreferredSize(new Dimension(6, 3));
    contentPane.add(textField, BorderLayout.WEST);
    textField.setColumns(10);
}

}

1 个答案:

答案 0 :(得分:2)

您可以简单地为FlowLayout JPanel使用默认布局管理器contentPane。这将尊重组件的首选大小:

删除(或注释掉):

contentPane.setLayout(new BorderLayout(0, 0));

总是更好地使用布局管理器,并避免调用组件的 setXXXSize 方法来调整大小。如有必要,您可以覆盖getPreferredSize

请参阅:Doing Without a Layout Manager