gpt4 book ai didi

java - 米格布局 : Resize components relatively to a screen size

转载 作者:行者123 更新时间:2023-12-02 03:59:03 24 4
gpt4 key购买 nike

我正在使用 MigLayout 来对齐 Swing 应用程序中的组件。我有 2 个 JPanel 组件和一个工具栏。我想将工具栏放在顶部,然后将 3 个面板并排放置,但是它们的大小应以百分比 (%) 定义,并且相对于屏幕大小。我知道如何根据固定尺寸 (px) 对齐所有这些组件,但是如何切换到相对于屏幕尺寸的 %?

JPanel contentPanel = new JPanel();
contentPanel.setBorder(BorderFactory.createEmptyBorder(0, 4, 4, 4));
contentPanel.setLayout(new MigLayout("fillx,insets 1"));
JScrollPane westPanel = new JScrollPane(createParametersPanel());
JScrollPane eastPanel = new JScrollPane(createPanel());
JEditorPane editor = new JEditorPane("text/plain", "Hello World");
contentPanel.add(toolbar,"wrap");
contentPanel.add(westPanel,"width :200:");
contentPanel.add(editor,"width :200:");
contentPanel.add(eastPanel,"width :400:");
setContentPane(contentPanel);

最佳答案

可以在 MigLayout 中直接使用 % 宽度,试试这个例子:

import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

import net.miginfocom.swing.MigLayout;

public class Main
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(100, 100, 500, 500);

JPanel contentPanel = new JPanel();
contentPanel.setLayout(new MigLayout("insets 4 4 4 4",
"[fill,30%][fill,40%][fill,30%]", "[fill,grow]"));

JMenuBar menubar = new JMenuBar();
JMenu menu = new JMenu("File");
JMenuItem item = new JMenuItem("Open");
menu.add(item);
menubar.add(menu);
frame.setJMenuBar(menubar);

contentPanel.add(new JScrollPane());
contentPanel.add(new JScrollPane(new JEditorPane("text/plain", "Hello World")));
contentPanel.add(new JScrollPane());
frame.setContentPane(contentPanel);
frame.setVisible(true);
}
}

要完全了解如何使用 MigLayout,请遵循此 Whitepaper .

关于java - 米格布局 : Resize components relatively to a screen size,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35100399/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com