私はJavaで私の試験プロジェクト(D用)のような焦土を作っていますが、この問題があります。私はウィンドウ(JFrame)を描画し、レイアウトをBorderLayoutに設定し、拡張JPanelを適用し、ウィンドウをパッキングしますが、パッキングされた後、左と下の境界にいくつかの拡張された空白が表示されます。Java Swingがウィンドウを間違ってパックします
これは私のメインクラスです:
public class Main {
public static void main(String[] args) {
javax.swing.JFrame frame = new javax.swing.JFrame("game title");
panel p = new panel(new java.awt.Dimension(512, 512));
frame.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(new java.awt.BorderLayout());
frame.getContentPane().add(p, java.awt.BorderLayout.CENTER);
frame.pack();
frame.setResizable(false);
frame.setVisible(true);
}
}
パネルはコンストラクタで、それは引数(512×512)の推奨サイズです設定された私のJPanelクラス、です。私はWindowsとLinuxの両方でこれをテストしましたが、両方の場所でエラーが発生しました。また、ホワイトギャップのサイズはOSによって異なります。
これは私のパネルクラスです:
class panel extends javax.swing.JPanel{
panel(java.awt.Dimension size){
setPreferredSize(size);
}
public void paint(java.awt.Graphics g){
g.setColor(java.awt.Color.BLUE);
g.fillRect(0, 0, 512, 512);
}
}
助けてください!
私は(よりよい名前を必要とし、少なくともキャメルケースを使用して命名されなければならない)あなたのpanel
クラスせずにこれを再現しようとした
あなたはあなたのパネルクラスについて教えてくれませんでした。それは何をするためのものか?コンストラクタ引数は何をしますか?問題をSSCCEに還元できますか? http://www.sscce.org/ –
提供されたPanelクラスに問題はありません。また、2つの場所でパネルの望ましいサイズをハードコーディングすることによってあなた自身を繰り返します。それをしないでください! –
私は矩形のサイズを設定するために使用しているウィンドウのサイズを持つ変数を持っています。 – Xunil