2013-01-12 25 views
1

我添加了一個JTextFieldJPanel使用Window構建在Eclipse和不管我試過了,文本字段顯示是這樣的:的Java - Eclipse中的JTextField太大

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

我曾嘗試更改首選尺寸,最大尺寸和最小尺寸,它仍然是這樣。

我該如何解決這個問題?我做錯了什麼?

在此先感謝。

UPDATE


代碼:(這一切都是自動由谷歌的窗口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

向我們顯示您的代碼。 – MrSmith42

+1

您使用哪種佈局? – 0xJoKe

+0

同意,看起來像一個'BorderLayout',更改佈局管理器 – MadProgrammer

回答

2

你可以簡單地使用默認的佈局管理器FlowLayoutJPanelcontentPane。這將尊重組件首選大小:

刪除(或註釋掉):

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

總是最好使用佈局管理器和避免調用setXXXSize方法用於上漿組件。如有必要,您可以覆蓋getPreferredSize

請參閱:Doing Without a Layout Manager