2010-05-09 2 views
0

간단한 계산기를 만들고 싶습니다. 그것은 3 개의 필드로 구성됩니다. 결과를 표시 할 텍스트 필드, 시스템을 선택하는 확인란 및 숫자가있는 필드.스윙의 BoxModel은 어떻게 작동합니까?

각 요소에는 어떤 종류의 구성 요소를 사용해야합니까? 내 창에서 요소를 배치하려면 어떻게해야합니까? 구성 요소 (예 : 확인란)에 요소를 배치하려면 어떻게해야합니까?

이것은 내가 달성하고자하는 것입니다.

http://img28.imageshack.us/img28/7691/lab8c.jpg

답변

2

나는 버튼의 번호 창 라디오 버튼에 대한

  • JRadioButton에 대한

    • JTextField
    • JButton을 사용합니다.

    구성 요소의 레이아웃은 이른바 레이아웃 관리자로 연기되어야합니다. . (이 경우 GridLayoutUsing Layout Managers에서보세요 및/또는 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 결정해야합니다 .당신이 원하는 것을 확실히 할 것입니다,하지만 프로그램하기가 매우 어렵습니다. 당신은 더 이상 BorderLayout와 함께 도망 갈 수 있습니다. 지. GroupLayout도 사용할 수 있습니다. BoxLayout, GridLayoutFlowLayout은 사용하려는 것이 아닙니다. 이제 당신에게는 최고의 요소를 배치하는 많은 옵션이 있습니다.

    결과로 JTextField을 사용하십시오. 체크 박스에 JCheckBox을 사용하십시오. 내부에 JPanel 테두리가 새겨 져 있고 (JPanel.setBorder(BorderFactory.createEtchedBorder()) 경유) FlowLayout입니다. 체크 박스를 CheckboxGroup에 넣는 것을 잊지 마십시오. 마지막으로 JPanel을 사용하여 JButton을 그룹으로 묶습니다. 이 단추를 배열하려면 GridLayout (5 행, 4 열)을 사용하십시오.