【问题标题】:How to make a main window large enough to show the full title如何使主窗口足够大以显示完整标题
【发布时间】:2016-08-13 11:31:18
【问题描述】:

我的意思是:

JFrame frame = new JFrame("Hello swing");
JPanel panel = new JPanel();
panel.add(new JButton("A"));
frame.add(panel);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);

但是这段代码显示了这个

有没有办法在启动后立即显示类似的内容?

我的意思是这样可以看到整个标题。

【问题讨论】:

    标签: java string swing


    【解决方案1】:

    用途:

    panel.setPreferredSize(new Dimension(WIDTH, HEIGHT));
    

    扩展你的框架

    【讨论】:

    • 我们应该避免使用 setXxxSize 不是吗?
    • 这个问题的答案不是很好,如果我们可以将框架设置为始终显示标题。当然,我们可以将其设置为很大,但这是一种非常糟糕的做事方式。
    【解决方案2】:

    使用标题的长度并将其应用于所使用的新维度。但是我没有测试过,你必须自己玩数字。只是给你一个想法。

    JFrame frame = new JFrame("Hello swing");
    JPanel panel = new JPanel();
    int len = frame.getTitle().length();
    Dimension dimension = new Dimension(200 + 7*len, 200);
    panel.setPreferredSize(dimension);
    

    我想使用数字7 作为常数会是最好的。但是请注意主要使用宽 (wwww..) 或窄字母 (iiii...),因为它们以不同的宽度出现。要得到准确的长度,你必须使用Graphics.getFontMetricsFontMetrics.stringWidth等方法。

    看看上面我的代码示例:

    【讨论】:

    • 有没有办法避免使用 setPrefferedSize?因为据我所知,这不是一件好事......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    • 1970-01-01
    • 2011-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-18
    相关资源
    最近更新 更多