【问题标题】:java resizing methodsjava调整大小的方法
【发布时间】:2012-04-15 08:10:01
【问题描述】:

您能告诉我在您手动调整 JFrame/JDialog 的大小后调用了哪些方法吗? (使用鼠标光标调整大小后,框架在屏幕上可见)。我注意到我的 JDialog 无效,尽管我调用了 validate()revalidate(),但是在我稍微调整它的大小后,我的框架变得有效。

【问题讨论】:

  • 你的问题不清楚。 “框架变为有效”是什么意思?另外,如果您可以提供 sscce
  • 我看到你想让你的 JDialog 有效,因为它在调整大小后变得有效。看看这个关于验证 o JComponent 的线程:stackoverflow.com/questions/8362484/…
  • 成为有效意味着 frame.isValid() 返回 true ......我不认为这很模棱两可。
  • 听起来你没有显示的代码有问题......通常,验证是自动处理的

标签: java swing methods resize jcomponent


【解决方案1】:

我认为是java.awt.event.ComponentListener

接收组件事件的监听接口。当。。。的时候 组件的大小、位置或可见性变化,相关方法 在侦听器对象中被调用,并将 ComponentEvent 传递给 它。

例如:

public class MyFrame extends JFrame implements ComponentListener {

    @Override
    public void componentResized(ComponentEvent e) {
        // re compute?
        repaint();
    }
}

【讨论】:

  • 应该没有必要……如果需要,通常会自动处理重绘
【解决方案2】:

使用此代码,我可以调整 3 个表格的宽度和高度。

container.addControlListener(new ControlAdapter() {
            @Override
            public void controlResized(ControlEvent e) {
                tableJobs.setBounds(20, 143,container.getBounds().width-40, container.getBounds().height-20);
                tableMessages.setBounds(20, 143,container.getBounds().width-40, container.getBounds().height-20);
                tableSplfs.setBounds(20, 143,container.getBounds().width-40, container.getBounds().height-20);
            }
        });

【讨论】:

    猜你喜欢
    • 2014-01-10
    • 2012-10-28
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2015-06-06
    • 2019-02-24
    • 1970-01-01
    • 2011-03-24
    相关资源
    最近更新 更多