用Java编写一个对输入的英文单词按照字典排序的程序,界面如图,当在一个文本域输入若干个英文字单词,单击字典排序按钮,另一个文本域 对输入的英文单词进行排序;当按清空按钮,另一个文本区域的内容同时清空。要求通过Swing组件完成本程序的编写。
时间: 2023-06-03 22:07:35 浏览: 118
非常感谢您的问题。关于您的问题,我可以回答:
您可以使用Java语言的Collections.sort()方法来对输入的英文单词按照字典排序。具体实现过程可以使用一个JFrame作为图形界面,其中包括一个JTextArea作为输入单词的文本域,以及一个JButton作为字典排序按钮。在点击字典排序按钮后,我们可以通过程序来获取输入的单词,并将其存储在一个List中,然后对该List进行字典排序。最终,我们可以将排序后的单词输出到另外一个JTextArea中。
以下是一个示例代码,您可以参考:
```java
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
public class WordSorter extends JFrame {
private static final long serialVersionUID = 1L;
private JTextArea inputTextArea, outputTextArea;
private JButton sortButton, clearButton;
public WordSorter() {
super("Word Sorter");
initComponents();
}
private void initComponents() {
inputTextArea = new JTextArea(10, 50);
outputTextArea = new JTextArea(10, 50);
sortButton = new JButton("Sort");
sortButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
sortWords();
}
});
clearButton = new JButton("Clear");
clearButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
inputTextArea.setText("");
outputTextArea.setText("");
}
});
JPanel buttonPanel = new JPanel();
buttonPanel.add(sortButton);
buttonPanel.add(clearButton);
add(inputTextArea, BorderLayout.WEST);
add(outputTextArea, BorderLayout.EAST);
add(buttonPanel, BorderLayout.SOUTH);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setVisible(true);
}
private void sortWords() {
String input = inputTextArea.getText();
String[] words = input.split("\\s+"); // split by whitespace
List<String> wordList = new ArrayList<String>();
for (String word : words) {
if (!"".equals(word.trim())) {
wordList.add(word);
}
}
Collections.sort(wordList);
StringBuilder sb = new StringBuilder();
for (String word : wordList) {
sb.append(word + "\n");
}
outputTextArea.setText(sb.toString());
}
public static void main(String[] args) {
new WordSorter();
}
}
```
注意,上述代码中使用了正则表达式"\s+"来将输入的英文单词按照空格进行分隔。如果需要支持其他的分隔符,可以将该正则表达式替换成相应的分隔符。另外,如果您需要在排序时忽略大小写,可以使用Collections.sort()方法的第二个参数,即一个Comparator对象,来实现自定义排序方式。
阅读全文