2010-05-09 67 views

回答

2

我會使用

  • 爲按鈕JTextField對數窗口
  • JRadioButton爲單選按鈕和
  • JButton

組件的佈局應推遲到所謂的佈局管理器。 (看一看Using Layout Managers在這種情況下,GridLayout和/或GridBagLayout將做精

此代碼應該讓你開始:。

import java.awt.*; 

import javax.swing.*; 


public class FrameTest { 

    public static void main(String[] args) { 
     final JFrame f = new JFrame("Frame Test"); 

     JPanel panel = new JPanel(new GridBagLayout()); 
     panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); 

     GridBagConstraints gbc = new GridBagConstraints(); 
     gbc.gridx = 0; 
     gbc.fill = GridBagConstraints.HORIZONTAL; 
     gbc.weightx = 1.0; 
     panel.add(new JTextField(), gbc); 


     JPanel numSysPanel = new JPanel(new GridLayout(1, 3)); 
     numSysPanel.setBorder(BorderFactory.createTitledBorder("Number System")); 
     numSysPanel.add(new JRadioButton("oct")); 
     numSysPanel.add(new JRadioButton("dec")); 
     numSysPanel.add(new JRadioButton("hex")); 
     panel.add(numSysPanel, gbc); 

     JPanel buttons = new JPanel(new GridLayout(4, 4, 2, 2)); 
     for (int i = 0; i < 16; i++) 
      buttons.add(new JButton("" + i)); 
     panel.add(buttons, gbc); 

     f.setContentPane(panel); 
     f.pack(); 
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     f.setVisible(true); 
    } 
} 

enter image description here

0

首先,你開始確定你應該使用哪個LayoutManager來安排你的三個字段GridBagLayout肯定會做你想要的,但是很難編程,你可以嘗試用簡單的BorderLayout逃脫,這會讓你的應用看起來很奇怪,而resizin G。您也可以使用GroupLayoutBoxLayout,GridLayoutFlowLayout不是您想要使用的。現在你有很多選擇,來展示你最重要的元素。

結果使用JTextField。使用JCheckBox作爲複選框,您將內部JPanel帶有蝕刻邊框(通過JPanel.setBorder(BorderFactory.createEtchedBorder()))和FlowLayout。不要忘記把複選框放在CheckboxGroup。最後但並非最不重要的是,使用JPanelJButton分組,按鈕。使用GridLayout(5行,4列)排列這些按鈕。