私は現在私の研究のためのプロジェクトに取り組んでいますが、私はGUIに関して少し問題があります。ここでBoxLayoutのコンテナはコンポーネントごとにサイズが変更されます
はいくつかのコードです:
private JButton zoomUp, zoomDown;
private JComboBox fractalList;
private JLabel choice,space;
private JPanel ui,display;
private JFrame window;
public FractalView(FractalModel m, FractalController c, String title, int size_X, int size_Y)
{
window =new JFrame();
window.setTitle(title);
window.setSize(size_X,size_Y);
window.setLocationRelativeTo(null);
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
window.setResizable(false);
window.setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor=GridBagConstraints.FIRST_LINE_START;
ui=new JPanel();
ui.setBackground(Color.GRAY);
ui.setBorder(BorderFactory.createTitledBorder("Interface de Controle et Options"));
BoxLayout uiLayout = new BoxLayout(ui, BoxLayout.PAGE_AXIS);
ui.setLayout(uiLayout);
ui.setMaximumSize(ui.getPreferredSize());
zoomUp = new JButton("Zoom +");
zoomUp.setAlignmentX(LEFT_ALIGNMENT);
zoomUp.setBorder(BorderFactory.createLineBorder(Color.RED));
ui.add(zoomUp);
zoomDown = new JButton("Zoom -");
//ui.add(zoomDown);
choice = new JLabel("Choisir une fractale : ");
//ui.add(choice);
Object[] elements = new Object[]{"Mandelbrot", "Julia", "Buddhabrot"};
fractalList = new JComboBox<Object>(elements);
//fractalList.setBorder(BorderFactory.createLineBorder(Color.RED));
fractalList.setAlignmentX(LEFT_ALIGNMENT);
fractalList.setMaximumSize(new Dimension(Short.MAX_VALUE,20));
//ui.add(fractalList);
gbc.weighty=1;
gbc.ipadx=300;
gbc.gridheight=1;
gbc.fill=GridBagConstraints.VERTICAL;
gbc.gridx=0;
gbc.gridy=0;
window.add(ui,gbc);
display=new JPanel();
display.setBackground(Color.RED);
gbc.weightx=1;
gbc.gridheight=1;
gbc.gridwidth=1;
gbc.fill=GridBagConstraints.BOTH;
gbc.gridx=1;
gbc.gridy=0;
window.add(display,gbc);
window.setVisible(true);
}
問題がJPanel ui
から来ています。それが空である限り、サイズは望み通りです。しかし、私はそれに重量を増やすコンポーネントを追加します。
setMaxSize()
を使用しようとしましたが、サイズが変更されても、JPanel display
に表示したい問題が発生する可能性があります。もう一度GridBagLayout
を使わないでください。
誰かがアイデアを持っていますか?
1)* "ここにいくつかのコードがあります:" *より良いヘルプのためには、[MCVE]または[ショート、自己完結型、正しい例](http://www.sscce.org/)を投稿してください。 2)最小のサイズでGUIの*意図された*レイアウトのアスキーアートまたは簡単な図面を提供し、余分なスペースをどのように使用すべきかを示すために、より幅と高さの変更が可能な場合。 3)* "再び' GridBagLayout'を使用しないことを望みます。* *次のような読み方* "私はスクリュードライバーを避ける方がいいですか?ジョブには適切なツールを使用します。私はそれがここGBLであるかどうかはわかりませんが、それを除外しないでください。 –