0

Java でデータ構造の GUI を作成しています。ユーザーがフォームの上部にある最大化ボタンをクリックするたびに、コンポーネントとフォーム内のすべてがウィンドウの拡大に応じてサイズ変更され、その逆も同様である機能が必要でした。私はたくさん検索しましたが、解決策を見つけることができませんでした。

GUI をスケーリングする方法は?

4

1 に答える 1

4

最大化ボタンが押されたときにツールバーのサイズを変更する方法などの短いコードを教えてください..

私はもっ​​とうまくやります。次の短いコード サンプルでBorderLayout​​.

サイズ変更可能なツールバー

import java.awt.BorderLayout;
import javax.swing.*;

public class ResizableToolBars {

    public static void showFrameWithToolBar(String toolBarPosition) {
        // the layout is important..
        JPanel gui = new JPanel(new BorderLayout());

        JToolBar tb = new JToolBar();
        // ..the constraint is also important
        gui.add(tb, toolBarPosition);
        tb.add(new JButton("Button 1"));
        tb.add(new JButton("Button 2"));
        tb.addSeparator();
        tb.add(new JButton("Button 3"));
        tb.add(new JCheckBox("Check 1", true));

        JFrame f = new JFrame(toolBarPosition + " Sreeeetchable Tool Bar");
        f.setContentPane(gui);
        f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        f.setLocationByPlatform(true);
        f.pack();

        // we don't normally set a size, this is to show where 
        // extra space is assigned.
        f.setSize(400,120);
        f.setVisible(true);
    }
    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable(){
            @Override
            public void run() {
                showFrameWithToolBar(BorderLayout.PAGE_START);
                showFrameWithToolBar(BorderLayout.PAGE_END);
                showFrameWithToolBar(BorderLayout.LINE_START);
                showFrameWithToolBar(BorderLayout.LINE_END);
                showFrameWithToolBar(BorderLayout.CENTER);
            }
        });
    }
}

その後、ネストされたレイアウトの例に戻ると、親コンテナーの 1 つの領域にある (パネル内の) 独自のレイアウトで、コンポーネントの小さなグループからそれをどのようにまとめたかを理解できるはずです。

于 2012-06-14T15:38:35.493 に答える