`

Frame.pack()与frame.validate()方法的区别

 
阅读更多
java 程序种经常用到Frame.pack();
  Frame.pack()这个方法的作用就是根据窗口里面的布局及组件的preferedSize来确定frame的最佳大小。

  frame.validate()是验证frame中的所有组件,并不会调整frame的大小.

  frame应用动态添加或者删除某些控件后,为了实时展现操作后的结果,
  就必须用validate,invalidate和repaint这三个函数。
  当前使用不当,会导致容器从新布局时出现闪烁

分享到:
评论

相关推荐

    贝叶斯主观推理算法java源码

    frame.validate(); } // Center the window Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); if (frameSize.height > screenSize.height) { ...

    如何卸载JPanel面板

    在移除JPanel后,必须调用`validate()`或`revalidate()`方法以确保容器的布局管理器能够重新计算其尺寸和位置。同时,`repaint()`方法用于刷新显示,以反映更改: ```java frame.getContentPane().remove(panel); ...

    JMF介绍及实例.doc

    frame.validate(); frame.pack(); } } else if (event instanceof PrefetchCompleteEvent) { player.start(); } } // 其他方法实现省略... } ``` ### 结论 通过以上介绍,我们可以看到JMF为Java开发人员...

    自定义JList

    frame.pack(); frame.setVisible(true); } } ``` 通过这种方式,我们成功地创建了一个自定义的`JList`,它具有类似于Android`ListView`的特性,用户可以直接在列表项上触发删除操作,并看到界面实时更新。这种...

    java反射小程序

    package reflectframe; import javax.swing.UIManager; import java.awt.*; public class Reflect { /*main()类 */ boolean packFrame = false;...//Construct the application ... frame.pack(); }

    FlowLayout

    4. 更新容器,调用`validate()`或`revalidate()`方法以应用新的布局。 例如: ```java import java.awt.*; import javax.swing.*; public class FlowLayoutExample { public static void main(String[] args) { ...

    java电子万年历(功能全面)

    frame.validate(); } Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); Dimension frameSize = frame.getSize(); frame.setLocation((screenSize.width - frameSize.width) / 2, (screen...

    学生学籍管理系统含java源代码.doc

    10. **布局管理**:在界面设计时,通过`frame.pack()`和`frame.validate()`调整窗口大小以适应内容,并通过` Toolkit.getDefaultToolkit().getScreenSize()`获取屏幕尺寸,以实现窗口在屏幕中央的定位。 这款学生...

    java swing 布局管理

    5. ** 更新视图 **:最后,使用 `validate()` 或 `revalidate()` 以及 `repaint()` 方法更新容器的布局和显示。 ### 3. 混合布局管理 在实际开发中,经常需要混合使用多个布局管理器。例如,可以在主容器上使用...

    FlowLayoutDemo:流布局实施

    frame.pack(); // 自动调整框架大小以适应内容 frame.setVisible(true); ``` 6. 在`actionPerformed`方法中,根据用户的选择添加或删除组件。这里假设我们有一个`JPanel`容器来存储组件: ```java JPanel panel = ...

    Perl TK 读书笔记

    my $frame = $mw->Frame()->pack(-side => 'top', -fill => 'both'); $frame->Label(-text => "Hello")->pack(-side => 'left'); $frame->Label(-text => "World")->pack(-side => 'left'); MainLoop; ``` ##### ...

    JFrame窗口学习.doc

    - `validate()`和`repaint()`方法分别用于重新布局和重绘窗口,通常在添加或移除组件后调用。 通过以上步骤,开发者可以构建出具有完整功能的图形用户界面。`JFrame`是Swing库中一个基础且重要的组件,掌握了它的...

    C标准库源代码(学习C/C++必备)

    Pack : clibsource.rar C 标准库源代码\ABORT.C C标准库源代码\ABS.C C标准库源代码\ACCESS.C C标准库源代码\ADJUSTFD.C C标准库源代码\ALGRITHM C标准库源代码\ASCTIME.C C标准库源代码\ASSERT.C C标准库源代码\...

    InternalFrameDemo.rar_java窗口

    通过`add()`方法实现,然后调用`validate()`或`revalidate()`来使改变生效。 4. **设置显示位置** 使用`setLocation()`方法可以指定内部框架在`JDesktopPane`上的初始位置。例如: ```java frame.setLocation(50...

    用java编写的简单五子棋小程序

    public class chessClient extends Frame implements ActionListener,KeyListener{ userPad userpad=new userPad(); chatPad chatpad=new chatPad(); controlPad controlpad=new controlPad(); chessPad ...

    java 小游戏(5子棋的实现)

    public class chessClient extends Frame implements ActionListener,KeyListener { userPad userpad=new userPad(); chatPad chatpad=new chatPad(); controlPad controlpad=new controlPad(); chessPad ...

    stdafx.h代码

    #pragma pack(push, _AFX_PACKING) #endif ///////////////////////////////////////////////////////////////////////////// // Classes declared in this file class CSize; class CPoint; class CRect; //...

Global site tag (gtag.js) - Google Analytics