相关疑难解决方法(0)

我应该避免在Java Swing中使用set(Preferred | Maximum | Minimum)Size方法吗?

有几次我因为建议使用以下方法而受到批评:

  1. 有必要对setPreferredSize
  2. 了setMinimumSize
  3. setMaximumSize

Swing组件上.当我想在显示的组件之间定义比例时,我没有看到任何替代它们的用法.我被告知这个:

对于布局,答案总是相同的:使用合适的LayoutManager

我在网上搜索了一下,但我没有找到任何关于这个主题的综合分析.所以我有以下问题:

  1. 我应该完全避免使用这些方法吗?
  2. 已经定义了这些方法的原因.那我什么时候应该使用它们?在哪种情况下?出于什么目的?
  3. 使用这些方法的负面后果究竟是什么?(我只能考虑在具有不同屏幕分辨率的系统之间添加可移植性).
  4. 我认为任何LayoutManager都不能完全满足所有需要的布局需求.我是否真的需要为布局上的每个小变化实现一个新的LayoutManager?
  5. 如果4的答案是"是",那么这是否会导致LayoutManager类的扩散变得难以维护?
  6. 在我需要定义组件子级之间的比例的情况下(例如,child1应该使用10%的空间,child2 40%,child3 50%),是否可以在不实现自定义LayoutManager的情况下实现这一点?

java swing layout-manager

471
推荐指数
8
解决办法
5万
查看次数

JAVA 设置 JFrame 的最大尺寸

我正在研究一个关于 JAVA Swing 的项目。我在JAVA方面没有太多经验,我需要你们的帮助。
我正在使用,frame.pack()因此它根据需要采用最佳尺寸。MyscreenTwo可以根据来自ScreenOne. 我用过,frame.setMaximumSize(new Dimension(1300, 500))但似乎没有用。
如果框架变大,它会与任务栏重叠,我不想要那样,所以它应该比总屏幕尺寸小一点。如何实现这一目标?
编辑:
代码:

public class Test {

    private static JFrame frame ;
    private JRadioButton[] radioButton;
    public static void main(String[] args) {
        Test t = new Test();
        t.go();
        frame.pack();
        frame.setMaximumSize(new Dimension(1300, 600));
        frame.setResizable(false);
        frame.setVisible(true);
        Dimension si = frame.getContentPane().getSize();
        System.out.println(si);         //Output: java.awt.Dimension[width=934,height=751]
    }
    public void go()
    {
        frame = new JFrame();
        JPanel panel1 = new JPanel();
        frame.getContentPane().add(panel1);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        panel1.setLayout(new BorderLayout(0, 20));
        Font font =  new Font("Times …
Run Code Online (Sandbox Code Playgroud)

java swing jframe layout-manager

1
推荐指数
1
解决办法
4544
查看次数

标签 统计

java ×2

layout-manager ×2

swing ×2

jframe ×1