实验六:
窗口输入数字,排序后保存到文件里,然后,显示到界面上。
package learning_swing;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class homework6 {
public static void main(String[] args) {
// TODO Auto-generated method stub
JFrame jf = new JFrame();
jf.setLayout(new GridLayout(12,2));
JLabel l1=new JLabel("请输入十个数值");
JLabel l2=new JLabel("选择排序方法");
jf.add(l1);jf.add(l2);
JTextField a[]=new JTextField[10]; //十个同类型的JTextField对象,直接用对象数组好了
int number[]=new int[10];
for(int i=0;i<10;i++) {
number[i]=0;
a[i]=new JTextField("");
jf.add(a[i]);
}
JButton b1=new JButton("冒泡法——倒序");
b1.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
for(int i=0;i<10;i++) {
number[i]=Integer.parseInt(a[i].getText());
}
for(int i=0;i<10;i++) {
for(int j=0;j+1<10-i;j++) {
if(number[j]<number[j+1]) {
int t=number[j];
number[j]=number[j+1];
number[j+1]=t;
}
}
}
for(int i=0;i<10;i++) {
a[i].setText(""+number[i]);
}
new paixu();
try {
File file=new File("/Users/morty/Desktop/java_text_paixu.txt");
if(!file.exists()) {
file.createNewFile();
}
///Users/morty/eclipse-workspace/Nobody care
FileWriter fileWriter=new FileWriter("/Users/morty/Desktop/java_text_paixu.txt",true);
for(int i=0;i<10;i++) {
fileWriter.write(number[i]+" ");
}
fileWriter.write("\n");
fileWriter.close();
}catch(IOException e1){
e1.printStackTrace();
}
}
});
JButton b2=new JButton("选择法——正序");
b2.addActionListener(new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
for(int i=0;i<10;i++) {
number[i]=Integer.parseInt(a[i].getText());
}
for(int i=0;i<10;i++) {
int val=number[i];
int index=i;
for(int j=i;j<10;j++) {
if(number[j]<val) {
val=number[j];
index=j;
}
}
int t=number[index];
number[index]=number[i];
number[i]=t;
}
for(int i=0;i<10;i++) {
a[i].setText(""+number[i]);
}
new paixu();
try {
File file=new File("/Users/morty/Desktop/java_text_paixu.txt");
if(!file.exists()) {
file.createNewFile();
}
///Users/morty/eclipse-workspace/Nobody care
FileWriter fileWriter=new FileWriter("/Users/morty/Desktop/java_text_paixu.txt",true);
for(int i=0;i<10;i++) {
fileWriter.write(number[i]+" ");
}
fileWriter.write("\n");
fileWriter.close();
}catch(IOException e1){
e1.printStackTrace();
}
}
});
jf.add(l1);jf.add(l2);
for(int i=0;i<10;i++) jf.add(a[i]);
jf.add(b1);jf.add(b2);
jf.setBounds(500,250,400,400);
jf.setVisible(true);
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}
class paixu extends JDialog{
public paixu() {
this.setVisible(true);this.setBounds(500,250,200,80);Container c = this.getContentPane();
JLabel l1= new JLabel("排序成功",JLabel.CENTER);
c.add(l1);
}
}