import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.swing.JButton; import javax.swing.JFileChooser; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextField; import javax.swing.ListSelectionModel; import javax.swing.border.EmptyBorder; public class SensitiveWordAnalyzer extends JFrame { private JPanel contentPane; private JTextField textFile; private JTextField textKeyword; private JList<String> listWords; private Map<String, Integer> wordMap; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { SensitiveWordAnalyzer frame = new SensitiveWordAnalyzer(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public SensitiveWordAnalyzer() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300);分析这段代码
时间: 2024-04-28 20:25:25 浏览: 11
这段代码定义了一个名为SensitiveWordAnalyzer的Java GUI应用程序。该应用程序可以用来分析文本文件中的敏感词并统计它们出现的次数。应用程序包含一个JFrame窗口和几个Swing组件,包括JPanel、JTextField、JList、JScrollPane、JLabel和JButton等。
在GUI中,用户可以选择要分析的文本文件,还可以添加或删除敏感词。文本文件和敏感词都保存在内存中的Map中。当用户单击“分析”按钮时,应用程序将读取文本文件并搜索其中的敏感词。在JList中,用户可以查看所有的敏感词及其出现次数。
该应用程序使用了Java的Swing GUI库来创建用户界面。它还使用了Java的文件I/O类来读取和写入文件。
相关问题
编写一个GUI界面的Socket聊天室(UDPChatGUI.java)
很高兴回答你的问题!下面是一个简单的UDP Socket聊天室的GUI界面的示例代码(UDPChatGUI.java):
```java
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
public class UDPChatGUI extends JFrame {
private JPanel contentPane;
private JTextField txtMessage;
private JTextArea txtChat;
private JButton btnSend;
private DatagramSocket socket;
private InetAddress address;
private int port;
private Thread receiveThread;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UDPChatGUI frame = new UDPChatGUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public UDPChatGUI() {
setTitle("UDP Chat");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
contentPane.setLayout(new BorderLayout(0, 0));
setContentPane(contentPane);
txtChat = new JTextArea();
txtChat.setEditable(false);
JScrollPane scrollPane = new JScrollPane(txtChat);
contentPane.add(scrollPane, BorderLayout.CENTER);
JPanel panel = new JPanel();
contentPane.add(panel, BorderLayout.SOUTH);
panel.setLayout(new BorderLayout(0, 0));
txtMessage = new JTextField();
panel.add(txtMessage, BorderLayout.CENTER);
txtMessage.setColumns(10);
btnSend = new JButton("Send");
btnSend.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
sendMessage();
}
});
panel.add(btnSend, BorderLayout.EAST);
// Create a new DatagramSocket
try {
socket = new DatagramSocket();
} catch (IOException e1) {
e1.printStackTrace();
}
// Get the IP address and port number of the server
try {
address = InetAddress.getByName("localhost");
port = 8888;
} catch (Exception e1) {
e1.printStackTrace();
}
// Start a new thread to receive messages from the server
receiveThread = new Thread(new Runnable() {
public void run() {
byte[] buffer = new byte[1024];
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
while (true) {
try {
socket.receive(packet);
String message = new String(packet.getData(), 0, packet.getLength());
txtChat.append("Server: " + message + "\n");
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
receiveThread.start();
}
private void sendMessage() {
try {
// Get the message from the text field
String message = txtMessage.getText();
// Convert the message to bytes
byte[] buffer = message.getBytes();
// Create a new DatagramPacket
DatagramPacket packet = new DatagramPacket(buffer, buffer.length, address, port);
// Send the packet
socket.send(packet);
// Append the message to the chat window
txtChat.append("Me: " + message + "\n");
// Clear the text field
txtMessage.setText("");
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
这个程序使用了Java的Swing GUI库,创建了一个简单的聊天室界面,包括一个文本框和一个发送按钮。当用户点击发送按钮时,程序将文本框中的消息发送到服务器,并将其显示在聊天窗口中。程序还启动了一个单独的线程来接收来自服务器的消息,并将它们显示在聊天窗口中。
请注意,这个示例程序仅用于演示目的,不能直接在生产环境中使用,因为它缺乏安全性和错误处理。在实际应用中,您需要更多的代码来处理异常情况,如网络连接中断、数据包丢失等。
写一个java登录注册界面
好的,我来为你写一个 Java 登录注册界面的示例代码。
首先,你需要准备好一个数据库,用于存储用户的登录信息。然后,你可以使用 Java 的 GUI 工具包(比如 Swing 或者 JavaFX)来创建登录注册界面。
这里是一个使用 Swing 创建的登录注册界面的示例代码:
```
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JPasswordField;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
public class LoginFrame extends JFrame {
private JPanel contentPane;
private JTextField textFieldUsername;
private JPasswordField passwordField;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
LoginFrame frame = new LoginFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public LoginFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
JLabel lblUsername = new JLabel("用户名:");
lblUsername.setBounds(100, 50, 72, 18);
contentPane.add(lblUsername);
JLabel lblPassword = new JLabel("密码:");
lblPassword.setBounds(100, 100, 72, 18);
contentPane.add(lblPassword);
textFieldUsername = new JTextField();
textFieldUsername.setBounds(200, 47, 130, 24);
contentPane.add(textFieldUsername);
textFieldUsername.setColumns(10);