Java でデータ構造の GUI を作成しています。ユーザーがフォームの上部にある最大化ボタンをクリックするたびに、コンポーネントとフォーム内のすべてがウィンドウの拡大に応じてサイズ変更され、その逆も同様である機能が必要でした。私はたくさん検索しましたが、解決策を見つけることができませんでした。
GUI をスケーリングする方法は?
Java でデータ構造の GUI を作成しています。ユーザーがフォームの上部にある最大化ボタンをクリックするたびに、コンポーネントとフォーム内のすべてがウィンドウの拡大に応じてサイズ変更され、その逆も同様である機能が必要でした。私はたくさん検索しましたが、解決策を見つけることができませんでした。
GUI をスケーリングする方法は?
最大化ボタンが押されたときにツールバーのサイズを変更する方法などの短いコードを教えてください..
私はもっとうまくやります。次の短いコード サンプルでは、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);
}
});
}
}
BorderLayout
。その後、ネストされたレイアウトの例に戻ると、親コンテナーの 1 つの領域にある (パネル内の) 独自のレイアウトで、コンポーネントの小さなグループからそれをどのようにまとめたかを理解できるはずです。