[解決済み] JPanelの幅と高さを設定するには?
2022-01-25 07:31:22
質問
Javaでスネークゲームを開発しています。ボード(すべてのアクションが行われる場所)の幅と高さは固定(640ピクセル*480ピクセル)である必要があります。
構造です。
- メインクラス を継承している JFrame クラスがあります。
- ボード を継承したクラスです。 JPanel クラスがあります。
で メイン クラスには、次のようなものがあります。
setSize( 1024, 768 );
...そしてBoardクラスでは...
setSize( BOARDS_WIDTH, BOARDS_HEIGHT );
問題は、メインと唯一のウィンドウが1024 * 768のように見えるが、その中のパネルが640 * 480のように見えないことです。私は setBackground() のように、背景が640 * 480より多く塗りつぶされています。
ボードの幅と高さを640 * 480のように、メインウィンドウの幅と高さを-ボードの幅と高さが正しいようにする方法はないでしょうか。
今はこんな感じです...。
編集する
すべてうまくいく...ほとんど。
メイン クラスがあります。
add( new Board(), BorderLayout.CENTER );
pack();
setResizable( false );
setLocationRelativeTo( null );
setVisible( true );
setDefaultCloseOperation( EXIT_ON_CLOSE );
setTitle( "Snake (by daGrevis)" );
ボード クラスがあります。
setPreferredSize( new Dimension( 640, 480 ) );
グレーの背景は642×482です。1ピクセルずつ全部を包むボーダーがあるようなものです。
解決方法は?
お願いです、何か変です。 x x*xであり、それは全く真実ではない、それを確認します。
JButton Size - java.awt.Dimension[width=400,height=40]
JPanel Size - java.awt.Dimension[width=640,height=480]
JFrame Size - java.awt.Dimension[width=646,height=505]
のコード(基本的なものは トレイル JFC/SwingでGUIを作る とはいえ、それは時代遅れだろうということで納得しました )
EDIT: 忘れ物
setDefaultCloseOperation()
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class FrameSize {
private JFrame frm = new JFrame();
private JPanel pnl = new JPanel();
private JButton btn = new JButton("Get ScreenSize for JComponents");
public FrameSize() {
btn.setPreferredSize(new Dimension(400, 40));
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println("JButton Size - " + btn.getSize());
System.out.println("JPanel Size - " + pnl.getSize());
System.out.println("JFrame Size - " + frm.getSize());
}
});
pnl.setPreferredSize(new Dimension(640, 480));
pnl.add(btn, BorderLayout.SOUTH);
frm.add(pnl, BorderLayout.CENTER);
frm.setLocation(150, 100);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // EDIT
frm.setResizable(false);
frm.pack();
frm.setVisible(true);
}
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
FrameSize fS = new FrameSize();
}
});
}
}
関連
-
[解決済み] StringBuilderをクリアまたは空にするにはどうすればよいですか?重複] [重複] [重複] [重複] [重複] [重複
-
[解決済み] ImageViewの幅と高さをプログラムで設定する?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Java Mapの各エントリを効率的に反復処理するには?
-
[解決済み] Javaでメモリーリークを発生させるにはどうしたらいいですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaでStringをintに変換するにはどうしたらいいですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] Javaで配列を宣言し、初期化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Java、"変数名 "を変数に解決することができない
-
[解決済み] java のクラス内のコンストラクタは、指定された型に適用できない
-
[解決済み】ResultSetの例外 - 結果セットの開始前
-
[解決済み] 二項演算子「&」のオペランド型がおかしい java
-
[解決済み】HTTPステータス500 サーブレットクラスのインスタンス化エラー [重複]。
-
[解決済み】 JAVA 変数宣言はここではできない
-
[解決済み】Gradleがtools.jarを見つけ出さない
-
[解決済み】文字列中の � を置換する方法
-
[解決済み】Eclipseで「JUnitテストが見つかりませんでした。
-
[解決済み】純粋なJUnitテストにVisibleForTestingを使用する方法