Java-Eclipse JTextField太大

Java-Eclipse JTextField太大,java,swing,jframe,jtextfield,layout-manager,Java,Swing,Jframe,Jtextfield,Layout Manager,我使用Eclipse中的窗口生成器将JTextField添加到JPanel中,无论我尝试了什么,文本字段都显示如下: (来源:) 我试图改变首选尺寸,最大和最小尺寸,但仍然是这样 我该如何解决这个问题?我做错了什么 提前谢谢 更新 代码:(全部由谷歌的WindowBuilder自动生成) 您只需对JPanelcontentPane使用默认布局管理器FlowLayout。这将考虑组件的首选尺寸: 删除(或注释掉): 最好使用布局管理器,避免调用组件的setXXXSize方法来调整大小。如有必要

我使用Eclipse中的窗口生成器将
JTextField
添加到
JPanel
中,无论我尝试了什么,文本字段都显示如下:


(来源:)

我试图改变首选尺寸,最大和最小尺寸,但仍然是这样

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

提前谢谢

更新
代码:(全部由谷歌的WindowBuilder自动生成)


您只需对
JPanel
contentPane
使用默认布局管理器
FlowLayout
。这将考虑组件的首选尺寸:

删除(或注释掉):

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


请参阅:

您使用哪种布局?同意,看起来像一个
边框布局
,更改布局管理器我该怎么做?据我所知,我正在使用谷歌的窗口生成器。但在我将任何东西安装到eclipse之前,我以编程的方式创建了一个文本字段,所以我也遇到了同样的问题……好吧,我想出来了,我将布局更改为绝对布局,它成功了,很抱歉我的愚蠢。啊!X(
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);
}

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