Tag: swing

通过当前日期

似乎无法修复代码中的Graphics2D缺乏,那么我必须为动画设置修复大小,否则一些开始外面Rectangle 490 x 490冻结或在屏幕上晃动 我的SSCCE import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.util.ArrayList; import java.util.Random; import java.util.Vector; import java.util.regex.Pattern; import javax.swing.*; import javax.swing.table.*; public class OneTwoThree implements Runnable { private String testS; private JFrame frame = new JFrame("frameTitle"); private JScrollPane tblS = new JScrollPane(); private JTable tbl; private Vector<String> rOrH; private long t1 […]

Java Swing按钮颜色

我正在使用NET Beans IDE在LINUX中开发我的应用程序。 我已经使用了合成包来产生新的外观和感觉。 一切都很好,直到现在。 现在我的下一个阶段是在某些数据库状态更改时为按钮添加颜色。 例如: 在一家餐厅,我有两张桌子,当有八人进来用餐时,我将在软件中创建两张桌子,因为人们无人看管,我希望这两张桌子的按钮是绿色的。 处理任何这些表格的订单时,处理表格的按钮颜色应更改为橙色。 在加工过程中应该是闪烁的颜色。 如何在java中做到这一点? 我会照顾数据库更新,我只是想知道如何改变按钮的颜色和添加闪烁技术。

动态添加组件到一个JDialog

当用户单击JDialog上的按钮时,我无法将JComponents添加到JDialog。 基本上我希望它看起来像这样: 然后,当用户点击“添加新字段”我想它看起来像这样: 我似乎无法让对话框添加新的JLabel或JTextField。 任何人都可以指向正确的方向吗? 编辑 :这是“添加新字段”按钮(只是现在试图标签)的行动。 @Action public void addNewField() { Container contentPane = getContentPane(); JLabel label = new JLabel ("welkom"); contentPane.add(label, BorderLayout.CENTER); } 方案 : 我使用mre的解决方案,并得到它的工作。 这是我最后的功能: @Action public void addNewField() { System.out.println("New Field…"); Container contentPane = getContentPane(); JLabel label = new JLabel ("welcome"); label.setBounds(10,10,100,10); //some random value that I know is in […]

Java事件分派线程说明

我最近开始学习和探索Java中GUI编程的基础知识。 经过编程一段时间,我只做了后端工作或工作,因此离用户界面最近的是命令控制台(我知道令人尴尬)。 我正在使用Swing,并且据我所知,这也意味着我也使用了AWT。 我的问题是基于这段代码: java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new frame.setVisible(true); } } ); 我一直在研究这一段时间,因为我想完全理解这段奇怪的代码,并多次遇到“事件分派线程”这个术语。 纠正我,如果我错了,但据我了解; 它与使用多个线程以及Java Swing如何解释这些线程有关。 我也收集以上代码用于确保所有线程在创建窗口之前是“安全的”,因此invokeLater? 我读过: “你只能调用在Event-Dispatching Thread上的框架上运行的方法” 只有在某些情况下,你才可以调用主方法在框架上运行的方法。 有人可以向我澄清事件调度线程究竟是什么? 它如何与多个执行线程相关联以及如何从主方法调用这些线程是不安全的? 另外为什么我们需要这个invokeLater? 我们能不能像其他物体一样创建窗户? 我在研究中遇到了一些障碍,因为我没有把握这些关系和想法。 值得一提的是,我喜欢将自己的知识建立在深入理解的基础上,因为我相信这会带来最好的总体结果,从而形成最好的计划。 如果我深入了解事情是如何工作的,那么你可以有效地使用这些提示和调整,而不是仅仅把它们再撇在代码中,所以请不要害怕给我一些额外的深入解释和拓宽我的知识。 谢谢。

如何使图像在Java中按键时移动。

我开始学习java编程,我认为通过游戏开发来学习java很酷。 我知道如何绘制图像,听按键然后移动那个图像。 但是当窗口正在按键时,是否有可能使图像来回移动到窗口? 例如,当图像或物体(如太空飞船)在窗口中从左到右移动时,如果按下空格键,则激光将在屏幕底部发射(冷却:D)。 但基本上我只是想知道如何让图像左右移动,而窗口正在听按键。 我在想,我会添加一个关键的侦听器到我的窗口,然后启动一个无限循环来移动图像。 或者我需要了解线程,以便另一个线程将移动该对象? 请指教。 非常感谢。

如何将一个窗格连线到另一个窗格

如何将输出连接到paneWithList ? PaneWithList在其JList上有一个监听器,这样所选择的行就输出到控制台。 如何将输出定向到输出上的JTextPane ? PaneWithList触发Main拾取的事件吗? PropertyChangeSupport是否足够? Main.java: package dur.bounceme.net; import javax.swing.JTabbedPane; public class Main { private static JTabbedPane tabs; private static PaneWithList paneWithList; private static PaneWithTable paneWithTable; private static Output output; public static void main(String[] args) { tabs = new javax.swing.JTabbedPane(); paneWithList = new PaneWithList(); paneWithTable = new PaneWithTable(); tabs.addTab("list", paneWithList); tabs.addTab("table", paneWithTable); tabs.addTab("output", […]

JPanel在益智游戏不更新

我有一个简单的益智游戏。 有一个由16个瓷砖(随机放置)组成的图像。 图像存储在一个数组中,当游戏启动时,它们被添加到主JPanel。 替代文字http://img248.imageshack.us/img248/7403/27632947.gif 游戏以这种方式工作:每个图像都有属性“地点”和“数字”。 “地点”是网格上的当前位置(无论是否正确),“数字”是图像的理想位置。 当用户点击图片时,他们的“地点”和“数字”属性被检查。 如果他们没有任何反应。 如果没有游戏检查是否有任何图像目前在内存中。 如果没有,则存储该图像的“地点”和“号码”。 如果在内存中有一些图像,则用存储的图像的“数字”检查当前点击的图像的平面。 当他们匹配 – 他们的地方交换。 这部分工作正常。 但现在,我调用我的JPanel更新的图像addComponent方法,根本没有任何反应。 不应该把新的图像添加到JPanel替换旧的? 包奖金; import javax.swing.*; import java.util.Random; import java.awt.event.*; import java.awt.*; class Puzzle extends JPanel implements ActionListener { private int selected_nr=-1; private int selected_pl=-1; private boolean memory=false; private static Img[] images; public Puzzle(){ JFrame f = new JFrame("Smile"); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.add(this); […]

批处理文件运行时显示不确定的JProgressBar

我一直在浏览SO和谷歌一段时间来回答这个问题,但我似乎无法找到一个真正的作品。 我将从头开始: 我使用在后台运行批处理文件的方法创建了一个Java类(不显示命令窗口)。 该程序工作的很好,除了最终用户会有点困惑,因为批处理文件需要一段时间才能完成 – 用户不知道程序是否仍在运行。 批处理脚本完成执行后,将出现一条消息对话框,表示已经完成,但是在运行方法和出现对话框之间的时间段内,程序看起来好像什么也不做。 所以这里是我的问题:我非常想显示一个新的框架与文本区域显示批处理文件的输出。 但是,我明白,如果不创建临时文件,写信给他们,阅读他们等等,这是非常困难的。 如果可能,我宁愿避免。 因此,我决定在进程运行时显示一个不确定的JProgressBar可能会更好,当进程结束时关闭它。 不幸的是,我不认为Swing可以处理这个,因为它需要一次运行多个进程。 我听说过一个SwingWorker,但是我不太清楚在这种情况下如何使用它。 我有以下SSCCE,它工作,但没有实施进度条。 public myClass(){ public static void main(String[] args){ String[] commands = {"cmd.exe", "/C", "C:\\users\\….\\myBat.bat"}; Process p = Runtime.getRuntime().exec(commands); p.waitFor() JOptionPane.showMessageDialog(null, "Process finished!"); } } 当p.waitFor()等待这个过程时,屏幕上没有任何东西。 我只想让用户看到一个进程仍在运行。 思考? 谢谢!

SwingUtilities.invokeLater

我的问题是关于SwingUtilities.invokeLater 。 我应该什么时候使用它? 每次我需要更新GUI组件时,是否必须使用? 它究竟做了什么? 有没有其他的选择,因为它听起来不直观,并增加了看似不必要的代码?