2014-12-08 4 views
0

범주 레이블 1, 2, 3, 4 및 5는 할당 할 행과 정렬되어 있지 않습니다. 나는 문제가 어디 있는지 이해하지 못한다. x 값은 동일합니다. 누군가가 나를 올바른 방향으로 이끌 수 있다면 정말 좋을 것입니다.jlabel/단추 서식 관련 문제

여기 내 코드의

public class GovernmentJepordyGame { 

    public static void main(String[] args) 
    { 
     JFrame frame = new JFrame("Jepordy"); 
     frame.setVisible(true); 
     frame.setSize(1300,900); 
     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

     JPanel panel = new JPanel(new GridBagLayout()); 
     GridBagConstraints c = new GridBagConstraints(); 

     frame.getContentPane().add(panel, BorderLayout.PAGE_START); 
     /*JLabel label = new JLabel("Welcome to government jepordy.");*/ 
     JLabel catagoryOne = new JLabel("Catagory 1"); 
     c.gridx = 0; 
     c.gridy = 0; 
     panel.add(catagoryOne, c); 
     JButton button500A = new JButton("500"); 
     c.gridx = 0; 
     c.gridy = 1; 
     c.insets = new Insets(65, 65, 65, 65); 
     panel.add(button500A, c);  
     JButton button400A = new JButton("400"); 
     c.gridx = 0; 
     c.gridy = 2; 
     panel.add(button400A, c); 
     JButton button300A = new JButton("300"); 
     c.gridx = 0; 
     c.gridy = 3; 
     panel.add(button300A, c); 
     JButton button200A = new JButton("200"); 
     c.gridx = 0; 
     c.gridy = 4; 
     panel.add(button200A, c); 
     JButton button100A = new JButton("100"); 
     c.gridx = 0; 
     c.gridy = 5; 
     panel.add(button100A, c); 

     JLabel catagoryTwo = new JLabel("Catagory 2"); 
     c.gridx = -1; 
     c.gridy = 0; 
     panel.add(catagoryTwo, c); 
     JButton button500B = new JButton("500"); 
     c.gridx = -1; 
     c.gridy = 1; 
     c.insets = new Insets(65, 65, 65, 65); 
     panel.add(button500B, c);  
     JButton button400B = new JButton("400"); 
     c.gridx = -1; 
     c.gridy = 2; 
     panel.add(button400B, c); 
     JButton button300B = new JButton("300"); 
     c.gridx = -1; 
     c.gridy = 3; 
     panel.add(button300B, c); 
     JButton button200B = new JButton("200"); 
     c.gridx = -1; 
     c.gridy = 4; 
     panel.add(button200B, c); 
     JButton button100B = new JButton("100"); 
     c.gridx = -1; 
     c.gridy = 5; 
     panel.add(button100B, c); 

     JLabel catagoryThree = new JLabel("Catagory 3"); 
     c.gridx = -2; 
     c.gridy = 0; 
     panel.add(catagoryThree); 
     JButton button500C = new JButton("500"); 
     c.gridx = -2; 
     c.gridy = 1; 
     c.insets = new Insets(65, 65, 65, 65); 
     panel.add(button500C, c);  
     JButton button400C = new JButton("400"); 
     c.gridx = -2; 
     c.gridy = 2; 
     panel.add(button400C, c); 
     JButton button300C = new JButton("300"); 
     c.gridx = -2; 
     c.gridy = 3; 
     panel.add(button300C, c); 
     JButton button200C = new JButton("200"); 
     c.gridx = -2; 
     c.gridy = 4; 
     panel.add(button200C, c); 
     JButton button100C = new JButton("100"); 
     c.gridx = -2; 
     c.gridy = 5; 
     panel.add(button100C, c); 

     JLabel catagoryFour = new JLabel("Catagory 4"); 
     c.gridx = -3; 
     c.gridy = 0; 
     panel.add(catagoryFour); 
     JButton button500D = new JButton("500"); 
     c.gridx = -3; 
     c.gridy = 1; 
     c.insets = new Insets(65, 65, 65, 65); 
     panel.add(button500D, c);  
     JButton button400D = new JButton("400"); 
     c.gridx = -3; 
     c.gridy = 2; 
     panel.add(button400D, c); 
     JButton button300D = new JButton("300"); 
     c.gridx = -3; 
     c.gridy = 3; 
     panel.add(button300D, c); 
     JButton button200D = new JButton("200"); 
     c.gridx = -3; 
     c.gridy = 4; 
     panel.add(button200D, c); 
     JButton button100D = new JButton("100"); 
     c.gridx = -3; 
     c.gridy = 5; 
     panel.add(button100D, c); 

     JLabel catagoryFive = new JLabel("Catagory 5"); 
     c.gridx = -4; 
     c.gridy = 0; 
     panel.add(catagoryFive); 
     JButton button500E = new JButton("500"); 
     c.gridx = -4; 
     c.gridy = 1; 
     c.insets = new Insets(65, 65, 65, 65); 
     panel.add(button500E, c);  
     JButton button400E = new JButton("400"); 
     c.gridx = -4; 
     c.gridy = 2; 
     panel.add(button400E, c); 
     JButton button300E = new JButton("300"); 
     c.gridx = -4; 
     c.gridy = 3; 
     panel.add(button300E, c); 
     JButton button200E = new JButton("200"); 
     c.gridx = -4; 
     c.gridy = 4; 
     panel.add(button200E, c); 
     JButton button100E = new JButton("100"); 
     c.gridx = -4; 
     c.gridy = 5; 
     panel.add(button100E, c); 
    } 
} 
+0

* ".. x 값이 같음 .."* x는 행이 아니라 열을 나타냅니다! –

+0

'c.gridx = -1;'은'gridx'의 유효한 값이 아닙니다 – MadProgrammer

+0

BTW - 'jepordy'철자가 'jeopardy'입니다. –

답변

1

gridx 당신은 x와 혼합 Y을 받고 양의 값, 뭔가 같은 ... 예를 들어

JFrame frame = new JFrame("Jepordy"); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

    JPanel panel = new JPanel(new GridBagLayout()); 
    GridBagConstraints c = new GridBagConstraints(); 

    frame.getContentPane().add(panel, BorderLayout.PAGE_START); 

    c.gridx = 0; 

    for (int index = 0; index < 5; index++) { 

     c.gridy = 0; 
     JLabel label = new JLabel("Catagory " + index); 
     c.insets = new Insets(0, 0, 0, 0); 
     panel.add(label, c); 
     c.insets = new Insets(65, 65, 65, 65); 
     for (int cat = 1; cat < 6; cat++) { 
      c.gridy++; 
      panel.add(new JButton(Integer.toString(cat * 100)), c); 
     } 

     c.gridx++; 
    } 
    frame.setVisible(true); 
    frame.setSize(1300, 900); 

...

0

을해야한다 쪽으로. 화면 왼쪽 상단 모서리는 0,0입니다. 오른쪽으로 이동하면 x가 증가하고, 아래로 내려 가면 y가 증가합니다. 따라서 x 좌표계에 (-) 값을 할당 할 필요가 없습니다. 화면에서 왼쪽으로 버튼을 움직일 가능성이 있습니다. 모든 단추, y 대신 x 표 값을 늘리십시오. 그러면 원하는 결과를 얻으실 수 있습니다.

gridx = 10 .... gridx = 20 .. 등등.

더 나은 점은 각 버튼을 반복하고 반복 할 때마다 x 값을 높이는 일종의 루프를 구현하는 것입니다.

또는 flowlayout 관리자를 살펴보면 자동으로 처리됩니다.