2014-01-28 61 views
2

如何在JTextField上添加JLabel簡單文本。 我嘗試了很多命令,正如你可以在我的代碼中看到的一樣,但是無法使用。如何將JLabel文本放在JTextField上

這是我的代碼快照

private JPanel createTextPanel() { 
     int panelWidth = PANEL_SIZE.width; 
     int panelHeight = PANEL_SIZE.height/3; 
     Dimension panelSize = new Dimension(panelWidth,panelHeight); 
     JPanel textPanel = new JPanel(); 
     textPanel.setPreferredSize(panelSize); 
     //textPanel.setLayout(null); 
     /* Add text */ 
     JLabel Text_RED = new JLabel(); 
     Text_RED.setText("Red"); 
     //Text_RED = new JLabel("\nRED\n"); 
     //Text_RED.setHorizontalTextPosition(SwingConstants.TOP); 
     //Text_RED.setVerticalAlignment(SwingConstants.TOP); 
     Red = new JTextField(3); 
     //Red.setVerticalAlignment(JTextField.TRAILING); 
     Red.setLocation(100,100); 

     //Red.setLocation(50, 50); 
     JLabel Text_Green = new JLabel("Green"); 
     Green = new JTextField(3); 

     JLabel Text_Blue = new JLabel("Blue"); 
     Blue = new JTextField(3); 

     //setLayout(new GridLayout(2,2,10,10)); 
     textPanel.add(Text_RED); 
     textPanel.add(Red); 

     textPanel.add(Text_Green); 
     textPanel.add(Green); 

     textPanel.add(Text_Blue); 
     textPanel.add(Blue); 

     return textPanel; 
    } 

回答

3

建議:

  • 不要使用空佈局和絕對定位。雖然看起來最初使用這些工具是創建複雜GUI的最簡單方法,但這實際上是一個新手謬誤,因爲越多瞭解和使用佈局管理器,越會發現它們使創建GUI的工作變得更容易,結果更具吸引力。
  • 瞭解和使用佈局管理器。 Tutorial link
  • 考慮使用BorderLayout並在BorderLayout.PAGE_END中添加JLabel BorderLayout.CENTER和JTextField。作爲一個方面說明,我通常避免將JTextField放置在BorderLayout.CENTER位置,因爲如果GUI更改大小,這會導致字段的水平拉伸,我認爲這並不美觀。
+1

'JPanel'使用[FlowLayout] [默認](http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html)。 –