ボタンのグリッドを含むJPanelを含むJFrameを作成しています。すべて正常に動作しますが、ボタンのパネルの上にJLabelを追加したいのですが、ラベルは表示されません。しかし、BoxLayoutを使用しないと表示されます。どんな助けもありがとうございます。BoxLayoutを使用しているJFrameにJLabelを追加する
下の最初のコード部分は、私のJFrameクラスは以下のコードは私のJPanelクラスは以下の最後のコード部分は
public class RunGame {
public static void main(String[] args) {
new Frame();
}
}
メインクラスであるボタン
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);
}
}
である
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