2014-09-13 4 views
1
으로 정렬

안녕하세요 동적으로 내가이 체크 박스가체크 박스는 3 행

여기

입니다 도와주세요 4 개 가지 기둥에 와서 마지막에 버튼을 제출 있는지 확인하려면 생성 확인란을 많이 가지고있는 JFrame의 코딩입니다 코드 여기

final JFrame frame=new JFrame("Button Frame"); 
      //JCheckBox[] checkBoxes = new JCheckBox[6]; 
      final JCheckBox[] checkBoxes= //= {new JCheckBox("bool"), new JCheckBox("list"), new JCheckBox("3"), new JCheckBox("4"), new JCheckBox("5"), new JCheckBox("6")}; 
      { 
       new JCheckBox("alist"),new JCheckBox("arithmetic"),new JCheckBox("ASCIInumbers"),new JCheckBox("bag"),  
       new JCheckBox("basicSize"),new JCheckBox(" basis_emit"),new JCheckBox("bitstring"),new JCheckBox("bit"),   
       new JCheckBox("blast"),new JCheckBox("bool"),new JCheckBox("canonical"),new JCheckBox("Coder"),  
       new JCheckBox("combin"),new JCheckBox("complex"),new JCheckBox("ConseqConv"),new JCheckBox("container"), 
       new JCheckBox("Decode"),new JCheckBox("DeepSyntax"),new JCheckBox("defCNF"),new JCheckBox("divides"), 
       new JCheckBox("Encode"),new JCheckBox("EncodeVar"),new JCheckBox("extended_emit"),new JCheckBox("extreal"),new JCheckBox("fcp"),  
       new JCheckBox("finite_map"),new JCheckBox("fixedPoint"),new JCheckBox("float"),new JCheckBox("fmaptree"), 
       new JCheckBox("frac"),new JCheckBox("gcdset"),new JCheckBox("gcd"),new JCheckBox("HolSmt"),new JCheckBox("hrat"),  
       new JCheckBox("hreal"),new JCheckBox("ieee"),new JCheckBox("ind_type"), new JCheckBox("inftree"), 
       new JCheckBox("int_arith"),new JCheckBox("integer_word"),new JCheckBox("integerRing"),new JCheckBox("integer"),  
       new JCheckBox("integral"),new JCheckBox("intExtension"),new JCheckBox("intreal"),new JCheckBox("lbtree"),new JCheckBox("lebesgue"), 
       new JCheckBox("lim"),new JCheckBox("list"),new JCheckBox("llist"),new JCheckBox("logroot"), 
       new JCheckBox("marker"),new JCheckBox("measure"),new JCheckBox("nets"),new JCheckBox("normalForms"), 
       new JCheckBox("numeral_bit"),new JCheckBox("numeral"),new JCheckBox("numpair"),new JCheckBox("numposrep"),  
       new JCheckBox("numRing"),new JCheckBox("num"),new JCheckBox("Omega_Automata"),new JCheckBox("Omega"),new JCheckBox("one"), 
       new JCheckBox("operator"),new JCheckBox("option"),new JCheckBox("pair"),  
       new JCheckBox("Past_Temporal_Logic"),new JCheckBox("path"),new JCheckBox("patricia_casts"),new JCheckBox("patricia"), 
       new JCheckBox("poly"),new JCheckBox("poset"),new JCheckBox("powser"),   
       new JCheckBox("pred_set"),new JCheckBox("prelim"),new JCheckBox("prim_rec"),new JCheckBox("primeFactor"),new JCheckBox("probability"),  
       new JCheckBox("quantHeuristics"),new JCheckBox("quote"),  
       new JCheckBox("quotient_list"),new JCheckBox("quotient_option"),new JCheckBox("quotient_pair"),new JCheckBox("quotient_pred_set"),new JCheckBox("quotient_sum"),  
       new JCheckBox("quotient"),new JCheckBox("ratRing"),new JCheckBox("rat"),new JCheckBox("real_sigma"), 
       new JCheckBox("realax"),new JCheckBox("real"),new JCheckBox("relation"),new JCheckBox("res_quan"),  
       new JCheckBox("rich_list"),new JCheckBox("ringNorm"),new JCheckBox("ring"),new JCheckBox("sat"),new JCheckBox("semi_ring"),  
       new JCheckBox("seq"),new JCheckBox("set_relation"),new JCheckBox("sorting"),  
       new JCheckBox("state_option"),new JCheckBox("state_transformer"),new JCheckBox("string_num"),new JCheckBox("string"), 
       new JCheckBox("sum_num"),new JCheckBox("sum"),new JCheckBox("Temporal_Logic"), 
       new JCheckBox("topology"),new JCheckBox("transc"),new JCheckBox("update"),new JCheckBox("util_prob"),new JCheckBox("while"),new JCheckBox("words")}; 

      int numb=checkBoxes.length; 
      //List<Checkbox> checkboxes = new ArrayList<Checkbox>(); 
      int align = BoxLayout.PAGE_AXIS; 

      frame.setLayout(new FlowLayout(align)); 
      // String labels[] = {"A", "B", "C", "D", "E", "F"}; 
      for (int i = 0; i < numb; i++) { 
       //checkBoxes[i].setText(labels[i]); 
       frame.add(checkBoxes[i]); 
       // Checkbox checkbox = new Checkbooks(labels[i]); 
       //checkboxes.add(checkbox); //for further use you add it to the list 
       //frame.add(checkbox); 
      } 
      JButton button = new JButton("Submit"); 
      frame.add(button); 

     } 


      frame.setSize(600,600); 
      frame.setVisible(true); 
      button.addActionListener(new ActionListener() { 
       int numb=checkBoxes.length; 

       @Override 
       public void actionPerformed(ActionEvent arg0) { 
        for(int a=0;a<numb;a++) 
        { 
         if (checkBoxes[a].isSelected()) { 

          //execute("app load [\""+checkBoxes[a].getText()+"Theory\"]; open "+checkBoxes[a].getText()+"Theory;"); 
          JOptionPane.showMessageDialog(frame, checkBoxes[a].getText()); 
         } 
        } 

는 FlowLayout에 사용하지 마십시오 내 현재보기 enter image description here }

답변

5

의 이미지입니다. 대신 GridLayout을 사용해야합니다.

자세한 내용과 예제는 How to Use GridLayout의 스윙 튜토리얼 섹션을 참조하십시오.

버튼을 그리드의 일부로 사용하지 않으려면 다른 레이아웃 관리자로 패널을 중첩해야합니다.

+0

미래에 혼란을 방지하기를,이 참조 가이드는 당신이 당신이 찾고있는 레이아웃을 시각화하는 데 도움이 될 수 있습니다 : http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html – Aezur

+0

또한 레이아웃에 빈'JPanel '을 추가 할 수 있다는 것을 기억하십시오. 예를 들어, 3 열의'GridLayout '그리고 중심에있는 버튼을 원했고, 결국 당신은 cou 빈'JPanel'을 추가 한 다음 버튼을 추가하십시오. – Aezur

2

그냥 JPanel을 사용하십시오. 레이아웃을 BorderLayout으로 설정하십시오.

또 다른 하나는 JPanel이고, 배열은 0 행과 4 열로 GridLayout으로 설정하십시오. 이제 간단하게 JCheckBox을 추가하십시오.

JPanelJButton에 붙이십시오.

지금

BorderLayout.PAGE_END에서 BorderLayout.CENTER 및 제 JPanel, 제 1 패널은 JPanel 함유 JCheckBox ES를 추가한다. 그게 다야. 출력 여기

import java.awt.*; 
import javax.swing.*; 

public class AlignCheckBoxExample { 

    private static final String[] data = { 
     "alist", "arithmetic", "ASCIInumbers", "bag", 
     "basicSize", "basis_emit", "bitstring", "bit", 
     "blast", "bool", "canonical", "coder", "combin", 
     "complex", "ConseqConv", "container", "Decode", 
     "DeepSyntax", "defCNF", "divides", "Encode", 
     "EncodeVar", "extended_emit", "extreal", "fcp", 
     "finite_map", "fixedPoint", "float", "fmaptree", 
     "frac", "gcdset", "gcd", "HolSmt", "hrat", 
     "hreal", "ieee", "ind_type", "inftree", 
     "int_arith", "integer_word", "integerRing", "integer", 
     "integral", "intExtension", "intreal", "lbtree", "lebesgue", 
     "lim", "list", "llist", "logroot", 
     "marker", "measure", "nets", "normalForms", 
     "numeral_bit", "numeral", "numpair", "numposrep" 
    }; 

    private JCheckBox[] checkBox; 
    private JButton submitButton; 

    private void displayGUI() { 
     JFrame frame = new JFrame("Align JComboBox Example"); 
     frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); 

     JPanel contentPane = new JPanel(); 
     contentPane.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); 
     contentPane.setLayout(new BorderLayout(5, 5)); 

     checkBox = new JCheckBox[data.length]; 
     JPanel centerPanel = new JPanel(); 
     centerPanel.setLayout(new GridLayout(0, 4, 5, 5)); 
     for (int i = 0; i < data.length; i++) { 
      checkBox[i] = new JCheckBox(data[i]); 
      centerPanel.add(checkBox[i]); 
     } 
     contentPane.add(centerPanel, BorderLayout.CENTER); 

     JPanel footerPanel = new JPanel(); 
     submitButton = new JButton("Submit"); 
     footerPanel.add(submitButton); 
     contentPane.add(footerPanel, BorderLayout.PAGE_END); 

     frame.setContentPane(contentPane); 
     frame.pack(); 
     frame.setLocationByPlatform(true); 
     frame.setVisible(true); 
    } 

    public static void main(String[] args) { 
     Runnable runnable = new Runnable() { 
      @Override 
      public void run() { 
       new AlignCheckBoxExample().displayGUI(); 
      } 
     }; 
     EventQueue.invokeLater(runnable); 
    } 
} 

됩니다 : 여기

이 코드 예제를 시도

JCHECKBOX EXAMPLE