JPanel의 너비가 JFrame의 너비와 같게 설정된 JFrame 내부의 JPanel과 인터페이스를 만들고 있습니다. JPanel은 디스플레이를보기 위해 프로그램을 실행할 때 JFrame의 너비와 동일한 너비를 가져야하는 필요한 크기보다 작은 아주 작은 상자로 표시됩니다. 그러나 JPanel의 너비를 약 6 줄이면 JFrame의 정확한 크기가 잘 표시됩니다. JFrame에 여백이나 패딩이있을 수 있지만 실제로는 알 수 없습니다. JPanel 너비를 부모 JFrame의 너비와 같게 만들 수 없으며 가능한 경우 어떻게 할 수 있는지 보여주세요. 내 디자인이 어떻게 설정되어 있는지와 같은 폭의 원인을 갖고 싶습니다. 내 코드는 다음과 같습니다.너비가 부모 Jframe과 같은 크기 인 경우 jpanel이 작은 상자가됩니다.
`import java.awt.*; //importing awt package
import javax.swing.*; //importing swing package
//class definition
public class PMSysClient {
//declaration of variables
private JFrame lgFrame; //login frame
private JFrame fdFrame; //frame for front desk
private JFrame docFrame; //frame for doctor
private JPanel logHeadPan; //header panel in login
private JPanel logAreaPan; //login area panel
//constructor definition
public PMSysClient() {
initialise();
}//end of constructor
//method to initialise class
public void initialise() {
lgFrame = new JFrame();
Container cont = lgFrame.getContentPane();
lgFrame.setSize(863, 569);
lgFrame.setLocationRelativeTo(null);
lgFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cont.setBackground(new Color(231, 228, 204));
cont.setLayout(new GridBagLayout());
logHeadPan = new JPanel();
logHeadPan.setBackground(new Color(204, 153, 255));
logHeadPan.setPreferredSize(new Dimension(863, 210));
GridBagConstraints c1 = new GridBagConstraints();
c1.weighty = 0.1;
c1.weightx=0.1;
c1.gridx = 0;
c1.gridy = 0;
c1.anchor = GridBagConstraints.FIRST_LINE_START;
lgFrame.add(logHeadPan, c1);
lgFrame.setVisible(true);
}//end of initialise
//main method definition
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e) {
}
new PMSysClient();
}//end of main method
}`
감사! 그것은 작동 중입니다 – ken
[왜'setXXXSize' 메소드를 호출하지 말아야합니까?] (http://korea.stackoverflow.com/q/7229226/1076463) (@kleopatra를 이길 때) – Robin
@ken : 이 질문에 제공된 다른 해결책을보십시오. 그 공헌들에서 꽤 유용한 조언을 얻을 수있을 것입니다. – Sujay