import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JButton; import javax.swing.JTextField; import javax.swing.JLabel; import java.awt.; import javax.swing.JFileChooser; import java.awt.event.;//导入ActionListener接口所在的包event public class demo extends JFrame{ public static void main(String[] args) { JFrame frame=new JFrame();//创建一个窗口 frame.setTitle("开始你的复制吧!");//设置窗口标题 frame.setBounds(400,400,400,300);//设置窗口的位置和大小 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 设置窗口关闭时的操作 frame.setBackground(Color.CYAN);//设置Frame的背景色 frame.setLayout(null);//不适用布局管理器,设置为NULL JTextField textField1=new JTextField(30); JTextField textField2=new JTextField(30); JLabel label1=new JLabel("输入你要拷贝的文件:"); JLabel label2=new JLabel("输入拷到哪里去:"); textField1.setColumns(30); textField2.setColumns(30); label1.setBounds(10,10,120,20); label2.setBounds(10,40,120,20); textField1.setBounds(140,10,200,20); textField2.setBounds(140,40,200,20); frame.add(label1); frame.add(textField1); frame.add(label2); frame.add(textField2); //frame.setSize(400,100); //frame.setLocation(300,200); frame.setVisible(true); JButton button1 =new JButton("copy"); button1.setBounds(270,70,100,20); button1.setBackground(Color.CYAN);//做作的天蓝色 frame.add(button1); JButton button2=new JButton("..."); button2.setBounds(350,12,20,16); frame.add(button2); JButton button3=new JButton("..."); button3.setBounds(350,42,20,16); frame.add(button3); class button2 implements ActionListener { public void actionPerformed(ActionEvent e) {//该方法是触发事件时程序要做什么 JFileChooser fileChooser=new JFileChooser("d://"); fileChooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);//可以选择文件和文件夹 if (fileChooser.showOpenDialog(null)==JFileChooser.APPROVE_OPTION){ String filePath=fileChooser.getSelectedFile().getAbsolutePath(); textField1.setText(filePath); } } } } }为什么点击button不出菜单
时间: 2024-02-11 18:09:54 浏览: 54
因为您没有将按钮与事件监听器绑定。在您的代码中,您定义了一个名为button2的内部类,但是您没有将其实例化并将其添加到按钮上。您需要添加以下代码来绑定按钮与该内部类:
```
button2.addActionListener(new button2());
```
这将把 `button2` 按钮的动作监听器设置为 `button2` 类的一个实例,从而使它能够触发文件选择器。同样的,您也需要将 `button3` 按钮与一个事件监听器绑定。
相关问题
解释下列代码import java.net.URL; import java.net.URLConnection; import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JDialog; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.UIManager; import javax.swing.UnsupportedLookAndFeelException; import javax.swing.text.BadLocationException; import javax.swing.text.DefaultHighlighter.DefaultHighlightPainter; import javax.swing.text.Highlighter;
这段代码导入了Java中许多常用的类和接口,包括:
- java.net.URL:用于表示 URL 地址,并可以通过它打开网络连接。
- java.net.URLConnection:用于打开和管理网络连接。
- java.util.ArrayList:用于存储一组对象,可以动态添加或删除元素。
- java.util.regex.Matcher:用于在字符串中搜索匹配某个正则表达式的子串。
- java.util.regex.Pattern:用于表示正则表达式。
- javax.swing.*:Swing 是 Java 的 GUI 工具包,这里导入了许多 Swing 组件,包括 JFrame、JLabel、JTextField、JButton、JComboBox、JTextArea、JScrollPane 等。
- javax.swing.text.BadLocationException:用于处理文本组件中的异常。
- javax.swing.text.DefaultHighlighter.DefaultHighlightPainter:用于实现文本高亮。
这些类和接口提供了许多常用的功能,可以帮助 Java 程序员快速开发出功能强大的应用程序。
package com.test.demo; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.InetAddress; import java.net.Socket; import java.net.UnknownHostException; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextArea; import javax.swing.JTextField;
这段代码是导入所需的Java类库,其中包括了用于GUI界面的JFrame、JPanel、JTextArea、JTextField等控件,以及用于监听事件的ActionListener接口和用于网络通信的Socket、InetAddress等类。这些类库提供了丰富的API,可以方便地实现各种功能。在使用这些类库时,需要进行适当的异常处理,以保证程序的稳定性和安全性。
阅读全文
相关推荐














