좋아, 그래서 상자 레이아웃을 테스트 해보고 싶습니다. layout help page에 정렬을 줄 수 있다고 지정했는데, 그게 바로 시도했지만 전혀 작동하지 않는 것 같습니다.Boxlayout 맞춤 정렬하지 않겠습니까
package gameflow;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Toolkit;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class LoginScreen extends JFrame
{
private static final Dimension SCREENSIZE = Toolkit.getDefaultToolkit().getScreenSize();
private static final double DEFAULTHEIGHT = (SCREENSIZE.getHeight() * 80)/100;
private static final double DEFAULTWIDTH = (SCREENSIZE.getWidth() * 80)/100;
private static final long serialVersionUID = -7245840869407664992L;
private JTextField userfield = new JTextField(), passfield = new JTextField();
private JLabel userlabel = new JLabel("Username"), passlabel = new JLabel("Password");
private static final Dimension fieldSize = new Dimension();
public LoginScreen()
{
super("Wraith: the game");
setBounds((SCREENSIZE.width * 10)/100, (SCREENSIZE.height * 10)/100,(int)DEFAULTWIDTH,(int)DEFAULTHEIGHT);
fieldSize.setSize((double)this.getWidth()/2,(double)this.getHeight()/30);
userfield.setMaximumSize(fieldSize);
userfield.setForeground(new Color(1f,1f,1f));
passfield.setMaximumSize(fieldSize);
passfield.setForeground(new Color(1f,1f,1f));
userlabel.setMaximumSize(fieldSize);
passlabel.setMaximumSize(fieldSize);
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.PAGE_AXIS));
panel.setBackground(new Color(0f,0f,0f));
panel.setAlignmentX(0.5f);
panel.add(userlabel);
panel.add(userfield);
panel.add(passlabel);
panel.add(passfield);
this.add(panel, BorderLayout.CENTER);
}
}
패널에서 볼 수 있듯이 Panel에는 BorderLayout이있는 JFrame의 boxlayout이 있으며 구성 요소는 가운데 정렬되지 않습니다. 왜? 수는 구성 요소가 약 10 문자를 표시 할 적절한 사이즈를 결정 할 수
JTextField textField = new JTextField(10);
: 모든
현재와 같이 모든 구성 요소의 왼쪽 가장자리가 동일합니다. 패널에서 setAlignment를 호출하면 개별 구성 요소에 영향을 미치지 않습니다. – MeBigFatGuy
글쎄, 내가 어떻게 그럴 수 있니? – Delupara
폼에 대해 BoxLayout을 통해 SpringLayout을 살펴 보겠습니다. 또는 심지어 miglayout. https://docs.oracle.com/javase/tutorial/uiswing/layout/spring.html – MeBigFatGuy