버튼 그리드가있는 JPanel을 포함하는 JFrame을 생성합니다. 모든 것이 정상적으로 작동하지만 버튼 패널 위에 JLabel을 추가하고 싶지만 레이블은 나타나지 않습니다. 비록 BoxLayout을 사용하지 않으면 나타납니다. 어떤 도움을 주셔서 감사합니다.BoxLayout을 사용하는 JFrame에 JLabel 추가하기
아래의 첫 번째 코드 부분은 아래 코드는
이import java.awt.Dimension;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Panel extends JPanel {
private static final long serialVersionUID = 2L;
private int i;
JButton[] button = new JButton[9];
GridLayout layout = new GridLayout(3, 3);
Dimension dim = new Dimension(500, 500);
public Panel() {
for (i = 0; i<9; i++) {
button[i] = new JButton();
add(button[i]);
}
setPreferredSize(dim);
setMinimumSize(dim);
setMaximumSize(dim);
setLayout(layout);
}
}
아래의 마지막 코드 부분은 메인 클래스
public class RunGame {
public static void main(String[] args) {
new Frame();
}
}
입니다 버튼 내 JPanel의 클래스 내 JFrame의 클래스
import java.awt.Dimension;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Frame extends JFrame {
private static final long serialVersionUID = 1L;
Panel panel = new Panel();
Dimension frameDim = new Dimension(1000, 1000);
Dimension labelDim = new Dimension(100, 20);
Box box = new Box(BoxLayout.Y_AXIS);
JLabel label = new JLabel("Tic Tac Toe");
JPanel pane = new JPanel();
public Frame() {
pane.add(label);
pane.setPreferredSize(labelDim);
pane.setMinimumSize(labelDim);
add(pane);
box.add(Box.createVerticalGlue());
box.add(panel);
box.add(Box.createVerticalGlue());
add(box);
setTitle("Tic Tac Toe");
setSize(frameDim);
setMinimumSize(frameDim);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
}
입니다
나는이 웹 사이트 및 더욱 많은 것에 응답을위한 긴 시간을 찾았다. 또한 일부 사용자와 채팅을했지만 답변을 찾지 못했습니다. 어떤 도움을 주셔서 감사합니다. – LAD
텍스트 필드 전체를 가로 질러 스트레칭하려면 다른 패널에 있어야합니다. 아마도 "상자 패널"과 "텍스트 필드 패널"을 보유하는 "기본 패널"을 만들 수 있습니다. "기본 패널"에 수직 FlowLayout을 부여 하시겠습니까? – byxor
'Frame.panel'은 어디에도 사용되고 있지 않습니다 (적어도이 예제에서는). 신경 쓰지 마세요. 상자에 추가되었습니다. 하지만 왜? – byxor