2012-10-15 2 views
1

저는 자바 스윙에 다소 익숙하며 연습을 위해이 작업을 직접 수행하려고합니다. 다음 예제에서는 원하는대로 필드를 표시 할 GridLayout이있는 설치가 있습니다. 하지만 텍스트 필드의 크기를 조정해야합니다. 텍스트 필드를 모두 일정한 크기로 만들지 않기 때문입니다. 나는 어떤 것이 더 크거나 작을 필요가있다. 이것을 할 수있는 방법이 있습니까? 또한 레이블 뒤에 패딩의 일부를 제거하는 방법이 있습니까? GridLayout과의GridLayout에서 텍스트 필드의 크기를 조정하십시오.

public void setupFrame() { 
    pnlTop.setLayout(new GridLayout(3, 4, 10, 10)); 

    lblClosetLoc.setText("Closet location:"); 
    lblPhone1.setText("Phone 1:"); 
    lblJackPaired.setText("Jack paired:"); 
    lblPhone2.setText("Phone 2:"); 
    lblCubicle.setText("Cubicle:"); 
    lblJackType.setText("Jack type:");  
    txtClosetLoc.setEditable(false); 
    txtClosetLoc.setText("");  
    txtPhone1.setEditable(false); 
    txtPhone1.setText("");  
    txtJackPaired.setEditable(false); 
    txtJackPaired.setText("");  
    txtPhone2.setEditable(false); 
    txtPhone2.setText("");  
    txtCubicle.setEditable(false); 
    txtCubicle.setText("");  
    txtJackType.setEditable(false); 
    txtJackType.setText("");   

    pnlTop.add(lblClosetLoc); 
    pnlTop.add(txtClosetLoc); 
    pnlTop.add(lblPhone1); 
    pnlTop.add(txtPhone1); 
    pnlTop.add(lblJackPaired); 
    pnlTop.add(txtJackPaired); 
    pnlTop.add(lblPhone2); 
    pnlTop.add(txtPhone2); 
    pnlTop.add(lblCubicle); 
    pnlTop.add(txtCubicle); 
    pnlTop.add(lblJackType); 
    pnlTop.add(txtJackType); 

    getContentPane().add(pnlTop);  

    setTitle("Test"); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setLocation(300, 300); 
    pack(); 
} 
+0

'GridBagLayout' 또는 'MigLayout'을 사용하십시오. – Stephan

답변

2

재 크기 텍스트 필드

GridLayout의 기본 속성은 그 두 방향으로 그 아이를 크기를 조정하고 fills/schrinks 가능한 모든 영역은 부모로부터 온 것입니다

또한 레이블 뒤에 패딩의 일부를 제거하는 방법이 있습니까?

pading은 좀 더 크게 또는 작게 필요한 pnlTop.setLayout(new GridLayout(3, 4, 10, 10));

.... 10, 10)에 의해 정의된다. 이것을 할 수있는 방법이 있습니까?

가 관심있는 사람들을위한 GridBagLayout 또는 SpringLayout

+0

SpringLayout을 통해 찾고 있는데 내가 찾고있는 것 같습니다! 감사! :) – Caveman42

+0

@ user1732377 기꺼이 도와 주면 JLabel (SwingConstant)에 대한 정렬을 설정하는 것을 잊지 마시고 모든 JTextComponents에 대한 작업을 수행하십시오 – mKorbel

0

보고 있고, 이것은 내가 SpringLayout에로 형태를 만든 후 내가 가진 것입니다. 어딘가에서 잘못하면 나를 바로 잡아주세요 :

public void setupFrame() { 
    SpringLayout layout = new SpringLayout(); 

    pnlTop.setLayout(layout); 

    lblClosetLoc.setText("Closet location:"); 
    lblPhone1.setText("Phone 1:"); 
    lblJackPaired.setText("Jack paired:"); 
    lblPhone2.setText("Phone 2:"); 
    lblCubicle.setText("Cubicle:"); 
    lblJackType.setText("Jack type:"); 

    txtClosetLoc.setEditable(false); 
    txtClosetLoc.setText(""); 

    txtPhone1.setEditable(false); 
    txtPhone1.setText(""); 

    txtJackPaired.setEditable(false); 
    txtJackPaired.setText(""); 

    txtPhone2.setEditable(false); 
    txtPhone2.setText(""); 

    txtCubicle.setEditable(false); 
    txtCubicle.setText(""); 

    txtJackType.setEditable(false); 
    txtJackType.setText(""); 


    pnlTop.add(lblClosetLoc); 
    pnlTop.add(txtClosetLoc); 
    pnlTop.add(lblPhone1); 
    pnlTop.add(txtPhone1); 
    pnlTop.add(lblJackPaired); 
    pnlTop.add(txtJackPaired); 
    pnlTop.add(lblPhone2); 
    pnlTop.add(txtPhone2); 
    pnlTop.add(lblCubicle); 
    pnlTop.add(txtCubicle); 
    pnlTop.add(lblJackType); 
    pnlTop.add(txtJackType); 

    layout.putConstraint(layout.WEST, lblClosetLoc, 5, layout.WEST, pnlTop); 
    layout.putConstraint(layout.NORTH, lblClosetLoc, 1, layout.NORTH, txtClosetLoc); 

    layout.putConstraint(layout.WEST, txtClosetLoc, 5, layout.EAST, lblClosetLoc); 
    layout.putConstraint(layout.NORTH, txtClosetLoc, 5, layout.NORTH, pnlTop); 

    layout.putConstraint(layout.WEST, lblPhone1, 10, layout.EAST, txtCubicle); 
    layout.putConstraint(layout.NORTH, lblPhone1, 1, layout.NORTH, txtPhone1); 

    layout.putConstraint(layout.WEST, txtPhone1, 5, layout.EAST, lblJackType); 
    layout.putConstraint(layout.NORTH, txtPhone1, 5, layout.NORTH, pnlTop); 

    layout.putConstraint(layout.WEST, lblJackPaired, 5, layout.WEST, pnlTop); 
    layout.putConstraint(layout.NORTH, lblJackPaired, 1, layout.NORTH, txtJackPaired); 

    layout.putConstraint(layout.WEST, txtJackPaired, 22, layout.EAST, lblJackPaired); 
    layout.putConstraint(layout.NORTH, txtJackPaired, 5, layout.SOUTH, txtClosetLoc); 

    layout.putConstraint(layout.WEST, lblPhone2, 10, layout.EAST, txtCubicle); 
    layout.putConstraint(layout.NORTH, lblPhone2, 1, layout.NORTH, txtPhone2); 

    layout.putConstraint(layout.WEST, txtPhone2, 5, layout.EAST, lblJackType); 
    layout.putConstraint(layout.NORTH, txtPhone2, 5, layout.SOUTH, txtPhone1); 

    layout.putConstraint(layout.WEST, lblCubicle, 5, layout.WEST, pnlTop); 
    layout.putConstraint(layout.NORTH, lblCubicle, 1, layout.NORTH, txtCubicle); 

    layout.putConstraint(layout.WEST, txtCubicle, 47, layout.EAST, lblCubicle); 
    layout.putConstraint(layout.NORTH, txtCubicle, 5, layout.SOUTH, txtJackPaired); 

    layout.putConstraint(layout.WEST, lblJackType, 10, layout.EAST, txtCubicle); 
    layout.putConstraint(layout.NORTH, lblJackType, 1, layout.NORTH, txtJackType); 

    layout.putConstraint(layout.WEST, txtJackType, 5, layout.EAST, lblJackType); 
    layout.putConstraint(layout.NORTH, txtJackType, 5, layout.SOUTH, txtPhone2); 

    layout.putConstraint(layout.EAST, pnlTop, 5, layout.EAST, txtPhone1); 
    layout.putConstraint(layout.SOUTH, pnlTop, 5, layout.SOUTH, txtJackType); 

    getContentPane().add(pnlTop, BorderLayout.CENTER); 


    setTitle("Test"); 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    setResizable(false); 
    setLocation(300,300); 
    pack(); 
}