可能大家都试过在swing的事件监听中动态添加组件,但是JFrame却不会动态显示,只有变大变小(实际是重画了)才会显示,有些人说repaint,updateUI可以,但是我试了一下还是不行。于是用validate...发现可以了
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class Ss extends JFrame{
Container con=this.getContentPane();
JButton jb1=new JButton("jb1");
JButton jb2=new JButton("jb2");
JLabel jl1=new JLabel("jl1");
FlowLayout gly=new FlowLayout();
JPanel jp=new JPanel(gly);
public Ss(){
con.add(jp);
jp.add(jb1);
jp.add(jb2);
MyListener ml=new MyListener();
jb1.addMouseListener(ml);
this.setSize(200,200);
this.setVisible(true);
}
private class MyListener extends MouseAdapter{
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
try
{
//主要就是下面的invalidate和validate
//当然,用jp来invalidate和validatae也是可以的
con.invalidate();
JButton jb3=new JButton("jb3");
jp.add(jb3);
con.validate(); }
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
public static void main(String s[]){
Ss sss=new Ss();
sss.setVisible(true);
}
}
分享到:
相关推荐
JTable实现下拉动态加载数据,滑动动态加载数据,纯原生态java。
JTable 动态刷新数据是指在 Java Swing 应用程序中,使用 JTable 组件展示数据,并实时更新数据的过程。这种技术在很多实际应用场景中非常有用,如股票交易平台、实时监控系统、电子表格等。 首先,在使用 JTable ...
java swing写的动态刷新路由器ip的工具,定期刷新,可设置刷新时间。输入路由器地址和用户名,密码后会定期刷新公网ip地址,软件界面会显示日志信息。对某些特殊需求很有用。目前适配tplink WDR8690双千兆路由器。...
Swing 图形界面实现可动态刷新的验证码 本文主要介绍了使用 Java 的 Swing 图形界面实现可动态刷新的验证码,通过这篇文章,读者可以学习到如何使用 Swing 实现验证码的生成和展示,并且了解到验证码的干扰元素和...
更改LookAndFeel后,必须调用`SwingUtilities.updateComponentTreeUI()`方法来刷新所有的Swing组件,使新的外观生效。 5. **兼容性与注意事项**: 确保所选的皮肤包与你的Java版本兼容,否则可能会遇到运行时错误...
3. **适当使用缓冲策略**:对于需要频繁刷新的数据展示,可以考虑使用缓冲机制来减少更新频率,避免过度消耗EDT资源。 4. **合理设计UI架构**:在设计Swing应用的UI架构时,应该充分考虑到性能问题。比如,对于复杂...
例如,当`TableModel`中的数据发生变化时,`JTable`会自动刷新显示新的数据。 **控制器(Controller)** 控制器是模型和视图之间的桥梁,它处理用户的输入,并根据需要更新模型或视图。在Swing中,控制器通常以事件...
在Java Swing库中,`JTabbedPane`是一个非常重要的组件,它允许用户在多个面板(JPanel)之间切换,每个面板都可以包含不同的内容。自定义`JTabbedPane`的外观可以提升应用程序的用户体验,使其更加个性化和专业。...
Java代码实现圆圈旋转效果,比如在线看电影缓存时的旋转圆圈,网页刷新时的旋转圆圈,等待时
- **Swing接收响应**:Swing应用接收Servlet的响应后,通常解析数据,更新UI组件,如显示服务器返回的信息或刷新表格。 4. **异步通信:JavaFX或Swing Workers** 为了保持用户界面的响应性,Swing应用通常使用...
4. **刷新组件**:设置完主题后,需要刷新所有Swing组件以应用新的外观。这可以通过`SwingUtilities.updateComponentTreeUI(rootComponent)`完成,其中`rootComponent`是你的应用程序主窗口。 除了这些基础操作,...
对于已经存在的组件,可能需要重新绘制或者刷新以显示新主题。 4. 处理兼容性问题:不同的主题可能会对某些特定的组件或功能有特殊要求,因此在使用过程中需要注意潜在的兼容性问题,并进行相应的调整。 开发者可以...
在游戏逻辑部分,开发者可能使用Java的定时器(java.util.Timer或javax.swing.Timer)来控制游戏的节奏,例如每隔一定时间刷新屏幕、更新猎物位置或添加新的目标。同时,使用ArrayList或其他集合类来管理游戏对象的...
4. **刷新组件**: 更改皮肤后,需要重新初始化所有已创建的Swing组件,以便它们能够反映出新的皮肤效果。可以调用` SwingUtilities.updateComponentTreeUI(rootComponent)`,其中`rootComponent`是应用程序的顶级...
同时,必须确保UI更新操作在Event Dispatch Thread(事件分发线程)上执行,避免界面刷新与逻辑计算的冲突。 5. **游戏逻辑**:蛇的移动逻辑包括方向判断、碰撞检测(蛇身碰撞或边界碰撞)、得分计算、食物生成等。...
- `repaint()`方法刷新组件,使修改后的图形可见。 8. **异常处理**: - 编程时需要考虑可能出现的异常,如文件不存在、读取错误等,通过`try-catch`块进行捕获并提供合适的用户反馈。 代码示例中的`jb51_java...
6. **界面优化**:可能包括添加前进、后退按钮,刷新功能,以及地址栏等常见浏览器元素,提升用户体验。 这个项目的源码是一个很好的学习资源,可以帮助开发者了解如何在Java Swing应用中集成Web浏览功能。通过研究...
3. **控制器(Controller)**:处理用户输入,并调用模型中的方法更新数据,然后通知视图进行刷新。 这种模式的优势在于将数据处理、用户界面渲染和用户交互逻辑分离,使得代码更加模块化,易于维护和扩展。 #### ...
`Timer`类可以用于控制时间间隔,每隔一段时间更新行星的位置,然后调用`repaint()`方法使得界面自动刷新显示最新的行星状态。 此外,为了使模型更逼真,开发者可能会引入角度和速度的变化,使得行星的旋转看起来...
在Java的Swing库中,滚动条(Scrollbar)和下拉加载(Pull Down)是两个重要的组件,它们常用于创建用户界面,特别是处理大量数据时。`swing之滚动条下拉加载数据源码`这个标题暗示了我们将在 Swing 应用程序中实现...