Tag: actionlistener

Java无法使用Runtime打开pdf

我必须在点击JMenuItem时打开一个pdf。 如果我从netbeans运行我的程序,我可以点击菜单项打开pdf。 但是当我从jar文件运行时它没有打开。 我清理并构建我的项目。 但没有变化。 从netbeans运行但不从jar文件运行时运行。 我需要添加一些库吗? 我的代码如下 m_aboutItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Runtime rt = Runtime.getRuntime(); //System.out.println(Menubar1.getDefaultLocale()); URL link2=Menubar1.class.getResource(“/newpkg/Documentation.pdf”); String link=link2.toString(); link=link.substring(6); System.out.println(link); System.out.println(link2); String link3=”F:/new/build/classes/newpkg/Documentation.pdf”; try { Process proc = rt.exec(“rundll32.exe url.dll,FileProtocolHandler ” + link2); } catch (IOException ex) { Logger.getLogger(Menubar1.class.getName()).log(Level.SEVERE, null, ex); } } }); 试过这个但是得到了同样的东西..当我从netbeans运行而不是从jar应用程序运行时,我可以从menuitem打开pdf。 m_aboutItem.addActionListener(new ActionListener() { […]

多个单选按钮的动作侦听器

我打算编写一个程序,让用户可以选择8 * 8矩阵。 因为我的声望低于10,所以我不能包含图像,但请放心,它只是一个普通的8 * 8矩阵。 我计划在我的Java程序中用8 * 8 = 64个单选按钮将其可视化。 用户一次只能选择一个单选按钮,这意味着所有64个按钮将属于同一个按钮组。 现在,我该如何管理动作监听器? 为64个单选按钮中的每一个设置64个独立的动作监听器是不可能的(真的很烦人和无聊)。 因为所有64个单选按钮都在同一个按钮组中,有什么办法可以设置一个事件监听器来检查选择了哪个按钮? 如果我的任何信息不清楚,请告诉我:) PS :我正在使用Netbeans设计工具

使用方法引用

我有一个名为saveButton的JButton并希望它在单击时调用save方法。 当然,我们可以使用旧方法来做到这一点: saveButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { save(); } }); 但今天我想使用新的Java 8function,如方法引用。 为什么 saveButton.addActionListener(this::save); 不行? 如何使用方法引用完成?

Java,如何从另一帧中刷新一帧中的JTable

所以我有一个MainFrame类,里面有一个JTable,列出了存储在DB中的所有产品。 JButton在监听器的帮助下将打开AddProduct(另一个类,另一个窗口/框架),我可以在其中添加产品。 不幸的是,一旦AddProduct添加了新产品和autocloses,我不确定如何在MainFrame中更新/重新validationJTable。 有些人可以给我一些想法,我怎么能轻易解决这个问题? 由于程序相当大,以下是它的相关部分:来自MainFrame.java public JPanel tabProducts() { JPanel panel = new JPanel(new MigLayout(“”,”20 [grow, fill] 10 [grow, fill] 20″, “20 [] 10 [] 20”)); /** Labels **/ JLabel label = new JLabel(“List of all available products”); /** Buttons **/ JButton add = new JButton(“Add product”); add.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) […]

我可以在一个类中使用多个ActionListener吗?

考虑下面过于简化的例子; 其中一些用伪代码编写,以简洁起见。 当我尝试按原样运行时,我收到编译器错误,指出已在我的main方法中找到actionPerformed 。 但是,如果我重命名它,对actionPerformed2说,它不再被ActionListener识别。 我是否需要将foo和foo2方法的侦听器组合到一个ActionListener方法中? 在具有多个按钮对象的单个类中使用多个侦听器时,如何正确区分侦听器? 我刚刚开始玩摆动组件,所以我怀疑我可能不会问正确的问题……但是我可以随时编辑。 🙂 public class foo { declare button1, button2, button3 and panel1 public foo() { show panel1 with button1 and button2; } public foo2() { show panel1 with button3; } public void actionPerformed(ActionEvent e) { Object source1 = e.getSource(); do some stuff when button1 is clicked } public […]

JSF 1.2动作exception和actionListener之间的区别

我注意到了JSF 1.2。 在actionListener方法中抛出exception时,不返回错误页面,但在操作方法中抛出exception时返回错误页面。 这是为什么? 在两种情况下都可以返回错误页面吗?

将图片插入JTextPane

在我的记事本应用程序中,我试图通过单击名为Picture的JMenuItem将图像添加到JTextPane ,就好像它是JLabel 。 private class Picture implements ActionListener { public void actionPerformed(ActionEvent event) { fc = new JFileChooser(); FileNameExtensionFilter picture = new FileNameExtensionFilter(“JPEG files (*.jpg)”, “jpg”); fc.setFileFilter(picture); fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); if (fc.showDialog(Notepad.this, “Insert”)!=JFileChooser.APPROVE_OPTION) return; filename = fc.getSelectedFile().getAbsolutePath(); // If no text is entered for the file name, refresh the dialog box if (filename==null) return; // NullPointerException textArea.insertIcon(createImageIcon(filename)); […]

JCombobox – 仅在值更改时执行actionlistener

我有一个JComboBox ,我有一个监听器附加到它。 现在,每当用户从下拉列表中“选择”事件时,即使他们刚刚重新选择之前选择的值,也会触发事件。 如果combobox的选定值与选择之前的值不同,有没有办法只触发事件? 我想我可以将combobox的值存储在不同的字段中,并在每次事件触发时对它进行比较,这看起来有点矫枉过正。 我有20个左右这样的combobox。 我宁愿不再有20个变量来存储值,所以事件不会触发。 一定有更好的方法。 谢谢您的帮助!

在Java中,如何在actionPerformed线程当前运行时重新绘制面板?

我有一个类(称为Class_GUI),它有一个面板上有很多按钮。 Class_GUI有一些方法可以改变按钮的文本和颜色。 我还有一个带有actionPerformed方法的程序。 调用它时,它会创建一个Class_GUI实例,并重复调用Class_GUI方法,更改按钮等。 我遇到的问题是,一旦actionPerformed方法完全完成,按钮只能正常显示,而我想在调用每个Class_GUI方法后更改它。 到目前为止,我的尝试是在每个Class_GUI方法中,我在方法结束时执行此操作: SwingUtilities.invokeLater(Refresh_GUI); 定义Refresh_GUI的位置: Runnable Refresh_GUI = new Runnable(){ public void run(){ frame.revalidate(); frame.repaint(); } };

Java Swing:使用相应的键盘按钮时显示按下的按钮

我正在使用Swing创建一个Java程序,其中包含一个包含箭头键的GUI。 箭头键对应键盘上的箭头键。 当我按下键盘上的向上箭头键时,我希望GUI上的向上箭头键显示为按下。 在我释放箭头键之前,它应该显示它仍然被按下,并且在释放时它也应该释放。 到目前为止我的代码片段(仅针对Up按钮),我认为在按下类别的节目中是完全错误的: … if (e.getKeyCode() == KeyEvent.VK_UP) { actionArrowUp(); JButton buttonUp = (JButton) mainTab.getComponent(4); buttonUp.setSelected(true); } … @Override public void keyReleased(KeyEvent e) { if (e.getKeyCode() == KeyEvent.VK_UP) actionArrowUpRelease(); buttonUp.setSelected(true);