2013-08-31 63 views
-2

我創建了一個這樣的框架。但我不知道如何對齊。 enter image description here在Java Swing中對齊標籤和文本區域

我想暫停版本1.1是在頂部和下一行的中心主題標籤後跟主題文本框和在下一行身體標籤後面是正文文本框。

而在文本框中,當我輸入更多時,它不會反彈到下一次。文字變爲不可見,但輸入相同的行。我希望你能幫助我。對不起,我英文不好。

+0

爲了更好地幫助越早,張貼[SSCCE(http://sscce.org/)。 –

+0

您想了解的類型是_LayoutManager_ :-) – kleopatra

回答

1

您需要更改layut管理器。

開始採取看看A Visual Guide to Layout ManagersUsing Layout Managers

就個人而言,我建議GridBagLayout,這是最靈活的,而且在默認庫提供的最複雜的佈局管理器

您可能還發現一些使用

更新How to use Scroll Panes用例

以一個廁所處的K How to use GridBagLayout更多細節

enter image description here

import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.EventQueue; 
import java.awt.Graphics; 
import java.awt.Graphics2D; 
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTextArea; 
import javax.swing.JTextField; 
import javax.swing.UIManager; 
import javax.swing.UnsupportedLookAndFeelException; 

public class TestLayout27 { 

    public static void main(String[] args) { 
     new TestLayout27(); 
    } 

    public TestLayout27() { 
     EventQueue.invokeLater(new Runnable() { 
      @Override 
      public void run() { 
       try { 
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 
       } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) { 
        ex.printStackTrace(); 
       } 

       JFrame frame = new JFrame("Testing"); 
       frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       frame.add(new TestPane()); 
       frame.pack(); 
       frame.setLocationRelativeTo(null); 
       frame.setVisible(true); 
      } 
     }); 
    } 

    public class TestPane extends JPanel { 

     public TestPane() { 
      JLabel l1 = new JLabel("Timedoff Version 1.1", JLabel.CENTER); 
      l1.setBackground(Color.red); 
      l1.setForeground(Color.yellow); 
      JLabel l2 = new JLabel("subject:"); 
      JTextField b = new JTextField("subject", 15); 
      JLabel l3 = new JLabel("Body:"); 
      JTextArea a1 = new JTextArea("boby", 10, 20); 

      setLayout(new GridBagLayout()); 
      GridBagConstraints gbc = new GridBagConstraints(); 
      gbc.gridx = 0; 
      gbc.gridy = 0; 
      gbc.anchor = GridBagConstraints.WEST; 

      add(l1, gbc); 
      gbc.gridy++; 
      add(l2, gbc); 
      gbc.gridy++; 
      add(b, gbc); 
      gbc.gridy++; 
      add(l3, gbc); 
      gbc.gridy++; 
      add(a1, gbc); 
     }   
    } 
} 
+0

thanku @MadProgrammer。它真的幫助我..但我嘗試添加一個按鈕JButton,但=新JButton(「發送」);並在最後一行添加像gbc.gridy ++;添加(但,GBC); ...整個結構發生了變化。當我刪除該按鈕,我回到原來..我怎麼可以添加按鈕? – user2158386