Tag: awt

如何在Java Swing中实现空闲任务

我有一个GUI应用程序,变得非常慢。 我想开始介绍各种GUI任务的时间安排 – 但是,我们的许多GUI操作会触发其他操作,然后“稍后调用”以触发其他操作。 最终,这一切都安定下来,没有什么可做的了。 这时,我想停止计时器并报告GUI“动作”花了多长时间。 我认为这样做的方法是实现一个名为invokeOnceIdle(Runnable task) 。 只有在AWTEventQueue为“空”时,该方法才会执行提供的任务。 即提供的“任务”应该是队列中的最后一件事。 一种方法是,如果有办法为SwingUtilities.invokeLater指定“最低”优先级 – 但这是不可能的。 我接下来看看是否可以“invokeLater”一个Runnable来检查事件队列是否为“空” – 但是没有公开的方法来查看事件队列是否实际为空。 最好的方法是什么?

CardLayout,通过ButtonClick在JPanel之间切换

我想通过点击JPanels上的按钮在JPanel之间切换。 例如:我有一个带有JButton simknop的JPanel sim和带有JButton helpknop的JPanel帮助我想通过单击按钮在这两个JPanel之间切换。 当我点击JButton simknop时,应该出现JPanel帮助,当我点击JButton时,应该会出现JPanel sim。 您可以在下面找到不同的类: main.java public class main extends JFrame { JPanel cards; sim sim; help help; public main() { this.setSize(1024,768); //this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS)); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle(“Crazy Bombardement”); this.setLocation(800, 100);//standaard in de hoek van het scherm cards = new JPanel(); cards.setLayout(new CardLayout()); sim = new sim(); help = new help(); cards.add(sim, […]

如何刷新JComboBox数据?

我无法刷新JComboBox的数据。 有一个按钮“ Create ”,它有ActionListener ,它将项添加到JComboBox 。 但是这些变化并没有反映在GUI中:我仍然没有看到新添加的项目。 repaint()没有帮助。 更新:这是一个(几乎)完整的GUI代码: public class Main extends JFrame implements ActionListener { static Connection conn; static PreparedStatement ps = null; static ResultSet res; static Statement sta; private final static int ITERATION_NUMBER = 1000; public void GUI () throws SQLException { setBounds(0, 0, 320, 240); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent we){ […]

从HeadlessGraphicsEnvironment.getDefaultScreenDevice抛出的java.awt.HeadlessException

我需要在java服务器上进行一些图像处理(Debian with java version“1.6.0_12”),我从我的代码接收java.awt.HeadlessException: java.awt.HeadlessException at sun.java2d.HeadlessGraphicsEnvironment.getDefaultScreenDevice(HeadlessGraphicsEnvironment.java:64) at WaxOn.getDefaultConfiguration(WaxOn.java:341) 即使java.awt.headless设置为true(这个代码打印明显如此): if (!java.awt.GraphicsEnvironment.isHeadless()) { logger.warn(“Headless mode is not enabled”); } else { logger.info(“Headless mode”); } 这是抛出exception的代码: public static GraphicsConfiguration getDefaultConfiguration() { GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment(); GraphicsDevice gd = ge.getDefaultScreenDevice(); return gd.getDefaultConfiguration(); } 知道怎么解决这个问题吗?

Java摇摆。 如何等待其他Jframe

在JFrame中,当我点击“登录”时,我会弹出另一个Jframe,即登录窗口。 在做其他任何事情之前,我如何让我的主Jframe等待我的登录Jframe退出?

在java中,JFrame是重量级组件还是轻量级组件?

我知道Swing被认为是轻量级的,因为它完全用Java实现,而不需要调用本机操作系统来绘制图形用户界面组件。 另一方面,AWT(Abstract Window Toolkit)是重量级工具包,因为它只是调用操作系统来生成GUI组件。 但我听说Swing仍然基于AWT,甚至Swing组件也必须至少有一个重量级容器。 换句话说,JFrame,JApplet不是轻量级的。这是真的吗? 找出你的理由?

KeyBindings和KeyListeners之间的区别

如果您可以这样做,KeyBindings有什么意义: // Imports public void Test { JButton button1; JButton button2; JButton button3; … Test() { button1 = new JButton(); button1.addKeyListener(this); button2 = new JButton(); button2.addKeyListener(this); button3 = new JButton(); button3.addKeyListener(this); … } public void keyPressed(KeyEvent e) { } public void keyReleased(KeyEvent e) { } public void keyTyped(KeyEvent e) { Object src = e.getSource(); if […]

Java – 从图像边框创建一个形状

我有一个从png图像中绘制形状的类,这样我就可以使用该形状绘制我项目所需的自定义按钮的边框。 这是绘制图像形状的类的代码: public class CreateShapeClass { public static Area createArea(BufferedImage image, int maxTransparency) { Area area = new Area(); Rectangle rectangle = new Rectangle(); for (int x = 0; x < image.getWidth(); x++) { for (int y = 0; y >> 24; if (rgb >= maxTransparency) { rectangle.setBounds(x, y, 1, 1); area.add(new Area(rectangle)); } } […]

停止全屏窗口以最小化JOptionPane.showMessageDialog?

代码 private MainApp() /* Extends JFrame */{ DisplayMode displayMode = new DisplayMode(800, 600, 16, 75); ScreenManager.setFullScreenWindow(displayMode, this); } 问题 每当我打电话: JOptionPane.showMessageDialog(MainApp.getInstance(), “Test Message Box”); 窗口由于某种原因最小化,然后我必须重新激活它。 重新激活窗口后,消息框显示。 问题 当我调用消息框时,有没有办法阻止全屏窗口最小化?

在没有ImageObserver的情况下在Java中获取图像的高度和宽度

我试图在没有ImageObserver的情况下在Java中获取图像的height和width (通过URL)。 我目前的代码是: public static void main(String[] args) throws IOException { // TODO Auto-generated method stub File xmlImages = new File(“C:\\images.xml”); BufferedReader br = new BufferedReader(new FileReader(xmlImages)); File output = new File(“C:\\images.csv”); BufferedWriter bw = new BufferedWriter(new FileWriter(output)); StringBuffer sb = new StringBuffer(); String line = null; String newline = System.getProperty(“line.separator”); while((line = br.readLine()) != […]