我的JToolBar中有一堆按钮,我根据应用程序的状态将其中一些设置为禁用或启用.我发现当我一次更新一些按钮时,它们并非同时重新绘制.我想确保当我设置一些禁用/启用的按钮时,它们都会同时改变状态.

下面是一个小测试,演示了这个问题. (它需要当前目录中的文件a.png用作按钮图标.)运行时,会显示一个带有10个按钮的工具栏.在终端按Enter键将切换所有按钮的禁用状态.至少在我的机器上,每次执行此操作时,按钮都会以看似随机的顺序重新绘制,而不是一次性完成.

似乎双缓冲可以解决问题,虽然我尝试的第一件事(在JToolBar上设置双缓冲)似乎没有影响任何东西.

谢谢,

卡梅伦

import java.awt.*;

import javax.swing.*;

import java.io.*;

import java.util.*;

public class Test {

public static void main(String[] args) throws IOException {

final JButton[] bs = new JButton[10];

EventQueue.invokeLater(new Runnable() {

public void run() {

JFrame f = new JFrame("test");

JToolBar t = new JToolBar();

f.getContentPane().add(t);

for (int i = 0; i < bs.length; i++) {

bs[i] = new JButton(new ImageIcon("a.png"));

t.add(bs[i]);

}

f.pack();

f.setVisible(true);

}

});

BufferedReader r = new BufferedReader(new InputStreamReader(System.in));

for (;;) {

r.readLine();

EventQueue.invokeLater(new Runnable() {

public void run() {

for (JButton b : bs) {

b.setEnabled(!b.isEnabled());

}

}

});

}

}

}

java 组件更新,java – 我可以批量处理一些Swing组件更新,以便重绘全部一次完成吗?...相关推荐

  1. java 语言程序设计 李尊朝 第12章 Swing 组件

    早期的JDK版本中提供了Java抽象窗口工具集(Abstract Window Toolkit, AWT),其目的是为程序员创建图形用户界面提供支持,但是AWT功能有限,因此在后来的JDK版 本中,又 ...

  2. java Swing组件总结

    文章目录 Jframe JDialog JPanel和JScrollPane容器 文本组件 按钮组件 1.JCheckBox 2.JRadionButton JComboBox组件 菜单组件 1.下拉 ...

  3. java面试题7 牛客:关于AWT和Swing说法正确的是?

    关于AWT和Swing说法正确的是? A Swing是AWT的子类 B AWT在不同操作系统中显示相同的风格 C AWT不支持事件类型,Swing支持事件模型 D Swing在不同的操作系统中显示相同 ...

  4. itext java_iText - PDF类库 - 组件类库 - JAVA开源项目 - 开源吧

    相关开源项目 Connla:Connla是一个Java包用于创建可导成TXT,CSV,HTML,XHTML,XML,PDF和XLS等格式的数据集. FOP:FOP是由James Tauber发起的一个 ...

  5. java swing 组件技术(上)

    2019独角兽企业重金招聘Python工程师标准>>> 第一次写自己的博客,明知道写得很水,还是努力去写了,希望踏出第一步之后,能有着更好的发展.这几天看了一些资料,总结了一下自己所 ...

  6. java jpanel调用构造函数的时候就开始执行repaint_在Java Swing组件中劫持`repaint()`调用...

    我正在编写一个在无头环境中运行的应用程序,需要输出到Buffered Image而不是屏幕.我有一个管理BufferedImage的Display类.我的应用程序扩展了JPanel,为了在组件更新时自 ...

  7. java 画笔跟swing组件_Java学习教程(基础)--Java版本历史(二)

    Java语言自JDK1.0版本以来经历了许多次更新,也在基本程序库中增加了大量的类别和包.从J2SE 1.4开始,Java语言的变动由 Java Community Process(JCP)管理,JC ...

  8. tt协议号服务器,TTIot: TTIoT云端物联网Iot组件;面向JAVA;netty;mqtt;异步推送;以事件为驱动;为设备提供安全可靠的连接通信能力;...

    TTIoT云端物联网组件;面向JAVA;以事件为驱动;为设备提供安全可靠的连接通信能力 TTIoT简介 TTIOT的Broker采用MQTT协议与设备进行交互,可以应用在数据采集.能源监控.智能生活. ...

  9. JAVA工具篇--java.awt.Robot模拟微信批量添加好友

    前言:java.awt.Robot可以控制鼠标和键盘,本文基于此通过模拟认为添加微信好友的过程实现批量添加微信好友,并最终输出微信号/手机号是否有好友及好友的基本信息,本文代码示例禁用学习交流使用: ...

  10. (JAVA)使用swing组件模仿QQ界面+网络编程实现QQ消息传输

    直接贴当时的实验报告吧. 1.课程题目 模仿腾讯QQ实现一个即时聊天软件,可以进行好友管理以及私聊等功能. 1.1功能性分类 功能类别 功能名称.标识符 描述 用户信息 用户登陆 用户登陆 用户注册 ...

最新文章

  1. linux下使用inotify实时监控文件变更,做完整性检查
  2. linux文件给另一用户名和密码错误,linux重命名root后,使用su命令切换新用户时,提示密码错误...
  3. LVS(11)——wrr
  4. 3.4.1 - Numeric Types
  5. php strip_tag 回车,详解PHP函数 strip_tags 处理字符串缺陷bug
  6. 获取输入框内容,数值类型转换问题
  7. c语言静态变量和静态函数
  8. android全面屏像素密度,屏幕像素密度超400ppi,让你感受视觉的极限
  9. 信息安全——非对称密码体制
  10. 音视频开发-音频数据处理流程
  11. 爱剪辑 for Mac全能视频剪辑软件
  12. Not allowed to access normals on mesh ‘Combined Mesh (root: scene)‘ (isReadable is false...报错解决方法
  13. 【论文解读 CIKM 2018 | GEM】Heterogeneous Graph Neural Networks for Malicious Account Detection
  14. 【笔记】大明王朝的七张面孔
  15. dhcp服务器显示未连接,提示本地连接未启用dhcp怎么办?本地连接未启用dhcp的解决方法...
  16. 一个用 C 语言写的迷你版 2048 游戏,只有 500个字符
  17. 无法启动程序因为计算机丢失d3d,弹框:无法启动此程序,因计算机中丢失D3DCOMPILER-47.dll。。。。。。...
  18. 对比这10个注意事项,你的网页文字排版达标了么?
  19. dnsmasq反DNS劫持、DNS污染、去广告
  20. 12.4 jason格式

热门文章

  1. 对java中路径的一些理解
  2. bugfree如何修改Bug7种解决方案的标注方法 .
  3. SQL Server高可用——日志传送(4-3)——使用
  4. #QCon#北京2011大会“更有效地做测试”专题Slides资料
  5. [!] No `Podfile' found in the project directory.
  6. SQLite数据类型详解
  7. if(){}else{}层数太多,提出来另写一个方法
  8. Mysql跨表更新 多表update sql语句总结
  9. html5数组循环右移,下面的程序代码实现将一个一维数组中元素向右循环移动 移位次数由文本框Text输入。例如数组各元素...
  10. [R语言绘图]条状图barplot