Tag: swing

如何更改JProgressBar颜色?

我用.setBackground和.setForeground ,他们没有工作,颜色就像橙色,不能改变它。

如何使用NetBeans GUI Builder包含自定义面板?

我写了一个扩展JPanel的类。 是否有可能在NetBeans GUI Builder中使用它,并让它在所有的自动代码生成过程中保留下来? 我已经使用GUI构build器中的自定义代码选项来实例化对象作为新的类,但它似乎不能从JPanel更改声明,所以只有方法,我已覆盖被调用,我不能调用新那些不在JPanel中的。

为什么我的项目没有显示在JFrame中?

我对JFrame相当陌生,我想知道为什么我的项目没有显示在窗口上。 我知道我没有一个ActionHandler,但我只想我的文本框显示在我的窗口。 这是我的代码: import java.awt.Font; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPasswordField; import javax.swing.JTextField; public class FirstGUI extends JFrame{ public void GUI(){ setTitle("Welcome"); setResizable(false); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); setSize(600,600); JLabel title = new JLabel(); title.setText("Apple Inc. Member Login Port"); title.setFont(new Font("Arial", Font.PLAIN, 24)); JTextField login = new JTextField("Login",10); JPasswordField pass = new JPasswordField("Password"); add(title); add(login); add(pass); } public […]

没有调用java keylistener

我已经使用Java中的KeyListener编写了示例代码,我创build了一个JPanel ,然后将其焦点设置为true,我创build了一个KeyListener,请求一个焦点,然后将KeyListener添加到我的面板。 但是keyListener的方法永远不会被调用。 看来,虽然我已经要求重点,但并不重点。 谁能帮忙? listener = new KeyLis(); this.setFocusable(true); this.requestFocus(); this.addKeyListener(listener); class KeyLis implements KeyListener{ @Override public void keyPressed(KeyEvent e) { currentver += 5; switch (e.getKeyCode()) { case KeyEvent.VK_LEFT : if(horizontalyInBounds()) currentPos-= 5; break; case KeyEvent.VK_RIGHT: if(horizontalyInBounds()) currentPos+= 5; break; } repaint(); } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub […]

在Java中序列化对象时的StackOverflowError

我正在使用Swing在Java中编写应用程序。 我正在尝试实现function,以保存和加载模拟状态,在我正在运行的模拟。 整个模拟保持为一个对象,与Swing断开连接。 我想用这段代码序列化我的模拟类: public void saveSimulationState(String simulationFile) { try { Serializable object = this.sm; ObjectOutputStream objstream = new ObjectOutputStream(new FileOutputStream(simulationFile)); objstream.writeObject(object); objstream.close(); } catch (IOException e) { System.out.println(e.getMessage()); } } 但我得到以下错误(这是巨大的)。 Exception in thread "AWT-EventQueue-0" java.lang.StackOverflowError at java.io.ObjectStreamClass.processQueue(ObjectStreamClass.java:2234) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:266) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106) at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1509) at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474) at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) at java.util.ArrayList.writeObject(ArrayList.java:570) […]

如何在Swing中停止重复的keyPressed()/ keyReleased()事件

所以我遇到的问题似乎是只在Linux上发生的错误。 我试图让我的挥杆应用程序logging,当一个键被按下,然后检测到该键被释放。 现在,不应该有问题,因为KeyListener应该为我处理。 问题是,当我按住键时,我得到了很多重复的keyPressed()/ keyReleased()事件,而不是只有一个keypressed()。 有没有人有一个解决scheme或解决方法知道什么时候一个密钥是真的在Linux上发布? 谢谢。

SwingWorker,done()在process()调用完成之前执行

我一直在与SwingWorker合作一段时间,结果出现了一个奇怪的行为,至less对我来说。 我清楚地明白,由于性能方面的原因,一次调用publish()方法的调用就被一次调用了。 这对我来说是完全有意义的,我怀疑SwingWorker会保留某种队列来处理所有的调用。 根据教程和API,当SwingWorker结束执行时, doInBackground()正常结束或工作线程从外部取消,然后调用done()方法。 到现在为止还挺好。 但是我有一个例子(类似于教程中显示的那样), 在 done()方法执行之后 ,有process()方法调用。 由于这两个方法都在Event Dispatch Thread中执行,我希望done()在所有process()调用完成后执行。 换一种说法: 预期: Writing… Writing… Stopped! 结果: Writing… Stopped! Writing… 示例代码 import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Graphics; import java.awt.event.ActionEvent; import java.util.List; import javax.swing.AbstractAction; import javax.swing.Action; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; public class Demo { […]

如何在java fx中每2秒更新一次标签框?

我试图在应用程序GUI中模拟一个基本的恒温器。 我想用新的温度值每2秒更新一次标签框值。 例如,我的初始温度将显示为68度,并更新为69到70,等等,每2秒钟75。 这是我在Java fx中编写的一段代码。 controlpanel面板是标签框存在的forms的对象。 它只更新最终值为75.它不会每2秒更新一次。 我写了一个方法暂停,导致2秒的延迟。 所有标签都更新为最终值,但不会每2秒更新一次。 当我debugging时,我可以看到值每2秒增加一个。 这段代码是用onClick事件写的 private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { int i=0; Timer asd = new Timer(1000,null); asd.setDelay(1000); while(i < 10) { jTextField1.setText(Integer.toString(i)); i++; asd.start(); } }

JOptionPane – 检查用户input,并防止closures,直到条件满足

请有人告诉我是否有一个方便的方法来阻止JOptionPaneclosures后单击确定,除非满足用户input字段的条件? 还是我别无select,只能使用JFrame ? 我的validation逻辑到目前为止。 似乎不工作,因为button是一次点击某种原因… final JDialog dialog3 = new JDialog(OmniGUI.getFrame(), "Create new Node – id:" + newNodeID); dialog3.setContentPane(theOPane); dialog3.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE); theOPane.addPropertyChangeListener(new PropertyChangeListener(){ public void propertyChange(PropertyChangeEvent e) { if(e.getSource() == theOPane){ String val = (String) ((JOptionPane) e.getSource()).getValue(); if(val=="Create"){ System.out.println("Checking content"); if(!valid){ System.out.println("closing the window"); dialog3.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE); dialog3.removeAll(); dialog3.dispatchEvent(new WindowEvent(dialog3, WindowEvent.WINDOW_CLOSING)); } } } } }); dialog3.setLocation(p); dialog3.pack(); […]

我如何自定义JFrame上的标题栏?

我想在我的Java Swing桌面应用程序中有一个定制的标题栏。 什么是最好的方法来做到这一点? 我可以在我的JFrame的构造函数中使用下面的代码来使用“Swing-title bar”: this.setUndecorated(true); this.getRootPane().setWindowDecorationStyle(JRootPane.FRAME); 但是,我如何定制它? 是否有任何UI委托 ,我可以重写,或者我必须从头开始实现我自己的标题栏? 我想要Lawson Smart Office之类的东西: