写一个java创意小程序,要求包含GUI知识
时间: 2024-01-25 21:02:48 浏览: 73
好的,我可以提供一个简单的Java GUI程序,它可以将一个文本文件中的单词读入,并显示出现最频繁的单词及其出现次数。这个程序需要使用 Java 的 GUI 组件来显示结果。
首先,我们需要创建一个 JFrame 对象,用于显示我们的 GUI。然后,我们需要创建一个 JPanel 对象,将其添加到 JFrame 中,以容纳我们的 GUI 元素。接下来,我们可以添加一个 JTextArea 组件,用于显示读入的文本文件中的所有单词。此外,我们还需要添加一个 JButton 组件,用于触发程序计算并显示出现最频繁的单词及其出现次数。
下面是完整的代码:
```java
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class WordFrequencyGUI {
private static final String FILE_PATH = "words.txt";
public static void main(String[] args) {
JFrame frame = new JFrame("单词频率计算器");
frame.setSize(500, 400);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
frame.add(panel, BorderLayout.NORTH);
JTextArea textArea = new JTextArea(20, 40);
panel.add(textArea);
JButton button = new JButton("计算最频繁的单词");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String text = textArea.getText();
Map<String, Integer> wordMap = new HashMap<>();
String[] words = text.split("\\s+");
for (String word : words) {
if (!wordMap.containsKey(word)) {
wordMap.put(word, 1);
} else {
int count = wordMap.get(word);
wordMap.put(word, count + 1);
}
}
String mostFrequentWord = "";
int maxFrequency = 0;
Iterator<Entry<String, Integer>> iterator = wordMap.entrySet().iterator();
while (iterator.hasNext()) {
Entry<String, Integer> entry = iterator.next();
String word = entry.getKey();
int frequency = entry.getValue();
if (frequency > maxFrequency) {
mostFrequentWord = word;
maxFrequency = frequency;
}
}
String result = "出现最频繁的单词是:" + mostFrequentWord + "\n出现次数为:" + maxFrequency;
textArea.setText(result);
}
});
panel.add(button);
try (BufferedReader reader = new BufferedReader(new FileReader(FILE_PATH))) {
StringBuilder sb = new StringBuilder();
String line = reader.readLine();
while (line != null) {
sb.append(line);
line = reader.readLine();
}
textArea.setText(sb.toString());
} catch (IOException e) {
e.printStackTrace();
}
frame.setVisible(true);
}
}
```
运行该程序,您应该可以看到一个窗口,其中包含一个 JTextArea 组件,用于显示文本文件中的单词,和一个 JButton 组件,用于计算并显示出现最频繁的单词及其出现次数。单击按钮后,程序将读入 JTextArea 中的文本,并计算出现最频繁的单词及其出现次数,并将结果显示在 JTextArea 中。
希望这个小程序可以帮助您学习 Java GUI 编程!
阅读全文