多くの人が知っていると思いますが、GUI を作成するとき、さまざまなパネルを保持するために cardlayout を使用します。これにより、画面が最大のパネルの幅と高さに設定されます。SudokuPanel
これは、私の最初の画面の美学に問題を引き起こしますCalkuroPanel
。
大きな画面に変更したときに好みのサイズを設定しようとしましたが、役に立ちませんでした。
良い情報へのリンクや、一般的に役立つものへのリンクに関するヘルプは大歓迎です:)。
以下のメインクラス(GUIを描画する場所)を見つけてください:
import java.awt.*; import javax.swing.*; import java.util.*;
public class puzzleGUI{
private static JPanel screens;
public static String username;
static public void main (String[] args){
JFrame puzzle = new JFrame ("Sudoku/Calkuro Pro");
...
PuzzleStartPanel startPanel = new PuzzleStartPanel();
PuzzleChoosePanel choosePanel = new PuzzleChoosePanel();
PuzzleSudokuPanel sudokuPanel = new PuzzleSudokuPanel();
PuzzleCalkuroPanel calkuroPanel = new PuzzleCalkuroPanel();
screens = new JPanel(new CardLayout());
screens.add(startPanel, "start");
screens.add(choosePanel, "choosePuzzle");
screens.add(sudokuPanel, "sudoku");
screens.add(calkuroPanel, "calkuro");
screens.setPreferredSize (new Dimension(250, 80));
puzzle.setJMenuBar(menuBar);
puzzle.getContentPane().add(screens);
puzzle.pack();
puzzle.setVisible(true);
puzzle.setResizable(false);
puzzle.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
}
static public void getUsername(String str){
username = str;
}
static public void openWindow(String newFrame){
CardLayout cl = (CardLayout)(screens.getLayout());
cl.show(screens, newFrame);
}
}
編集
が呼び出されたときに優先サイズをリセットした後、brainblast がフレームをパックしようとしましたopenWindow
が、すごい、新しいフレーム サイズ:D
static public void openWindow(String newFrame, int a, int b){
CardLayout cl = (CardLayout)(screens.getLayout());
cl.show(screens, newFrame);
screens.setPreferredSize (new Dimension(a, b));
puzzle.pack();
}