나는 널 레이아웃을 사용하고 있으며 많은 사람들이 이런 식으로하면 안된다고 말할 것입니다. 더 좋은 방법이 있습니까?
예를 들어 일부 코드 :
import javax.swing.*;
public class Main{
public static void main(String args[]){
JFrame frame = new JFrame();
JPanel panel = new JPanel();
JButton button = new JButton("Click");
//JFrame, frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
//JPanel, panel
panel.setLayout(null); //<<---- Is this correct?
frame.add(panel);
//JButton, button
button.setBounds(25, 25, 100, 60); //<<---- Is this correct?
panel.add(button);
}
}
더 좋은 방법이 있습니까?
레이아웃 관리자, 레이아웃 관리자, 레이아웃 관리자. 기본 제공 레이아웃 관리자가 원하는 작업을 수행하지 않는 경우 레이아웃 관리자 조합을 사용하거나 MigLayout과 같이 무료로 사용 가능한 레이아웃 관리자를 사용해보십시오 (필요에 따라 다른 레이아웃 관리자와 함께 사용).
코드로 ...
사용 GridBagLayout
버튼의 실제 요구 사항 (텍스트 및 글꼴 크기)을 고려하기 때문에 버튼이 약간 더 크지 만 항상 너비에 100 픽셀, 높이에 60 픽셀을 추가합니다.
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Main {
public static void main(String args[]) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
JButton button = new JButton("Click");
//JFrame, frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setSize(500, 500);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
//JPanel, panel
panel.setLayout(new GridBagLayout());
frame.add(panel);
GridBagConstraints gbc = new GridBagConstraints();
gbc.ipadx = 100;
gbc.ipady = 60;
gbc.insets = new Insets(25, 25, 0, 0);
gbc.weightx = 1;
gbc.weighty = 1;
gbc.anchor = GridBagConstraints.NORTHWEST;
panel.add(button, gbc);
}
}
이제 내가 추가하는 것이 전부 button.setFont(button.getFont().deriveFont(64f));
라면 결국 ...
왼쪽에 코드, 오른쪽에 내 코드 ...
그리고 그것이 지나치게 극적이라고 생각한다면, 다른 OS는 당신에게 더 나쁜 일을 할 것입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다