而且请不要这样说别人,这样会让别人觉得你很看不起人,真是郁闷!!
呵呵,
但是这种错误是不可能会发生的啊
你是怎么发生的呢?
应该不要每次帖一 点点代码,还有,编译器会告诉你错在哪一行,你看源代码的那一行就知道错了
而不要想当然的认为是那里错了,也许错的不是jt.setEditable呢
可惜不是你,陪我到最后
它指的就是jt2啊
import java.io.*;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class abc extends JFrame implements ActionListener
{
int ch; //选择项数
int num; //输入num个元素;
int i=0;
int A[];
JTextField jt1=new JTextField(20);
JTextField jt2=new JTextField(20);
JTextField jt3=new JTextField(19);
jt2.setEditable(false);
JLabel lb1=new JLabel("排序算法:(1-冒泡排序;2-选择排序;3-插入排序)");
JLabel lb2=new JLabel("请选择排序算法:");
JLabel lb3=new JLabel("排序元素个数为:");
JLabel lb4=new JLabel("输入要排序的元素:");
JLabel lb5=new JLabel("排序结果如下: ");
static JTextArea ja=new JTextArea(10,20);
ScrollPane jp=new ScrollPane();
JButton btn=new JButton("确定");
String str1=new String();
String str2=new String();
String str3=new String();
abc()
{
Container cp=getContentPane();
cp.setLayout(new FlowLayout(0));
jp.add(ja); //jp容器中加入ja
jp.setSize(250,210);
cp.add(lb1);
cp.add(lb2);
cp.add(jt1);
cp.add(lb3);
cp.add(jt2);
cp.add(lb4);
cp.add(jt3);
cp.add(lb5);
cp.add(jp);
cp.add(btn);
jt1.addActionListener(this);
jt2.addActionListener(this);
jt3.addActionListener(this);
btn.addActionListener(this);
setResizable(false);
setBounds(200,200,350,400);
setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==jt1)
{
// try{
str1=jt1.getText();
ch=Integer.parseInt(str1);
// }
// catch(Exception e)
// {
//JOptionPane.showMessageDialog(null, "输入错误", "错误", JOptionPane.ERROR_MESSAGE);
// }
}
if(e.getSource()==jt2)
{
str2=jt2.getText();
num=Integer.parseInt(str2);
A=new int[num];
}
if(e.getSource()==jt3)
{
int a; //定义一个获取数据的变量
if(i<num) //将数据存入一个数组A
{
str3=jt3.getText();
a=Integer.parseInt(str3);
A[i]=a;
i++;
}
}
if(e.getSource()==btn)
{
switch(ch)
{
case 1:
for(int i=0;i<num;i++)
{
String As=String.valueOf(A[i]);
ja.append(As+'\n');
}
Bubblesort(A);
break;
case 2:
SelectSort(A);break;
case 3:
Insertsort(A);break;
default:
ja.setText("算法选择错误!");
}
}
}
public static void main(String args[]) throws IOException
{
abc cp=new abc();
cp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void Bubblesort(int A[])
{
int n = A.length;
int t=0,l=0,q=0;//t记录比较次数,l记录移动次数 ,q为交换次数
int log=0;int temp;
String ts=new String();//用于将t,q,l分别转换为String型,便于输出
String qs=new String();
String ls=new String();
String time=new String();
long ft=System.currentTimeMillis();
for (int i = n-1; i>=1&log==0; i--)
{
log=1;
for (int j = 0; j < i; j++)
{
if (A[j] > A[j + 1])
{
temp = A[j];
A[j] = A[j + 1];
A[j + 1] = temp;
log=0;
l++;
q+=3;
}
t++;
}
}
long lt=System.currentTimeMillis();
ja.append("冒泡算法运行结果为:"+'\n');
time=String.valueOf(lt-ft);
ja.append("运行该算法的时间为:"+time+'\n');
cout(A);
ts=String.valueOf(t);//int转换为String
qs=String.valueOf(t);
ls=String.valueOf(t);
ja.append("该排序算法中数据比较次数为: "+ts+'\n');
ja.append("该排序算法中数据交换次数为: "+qs+'\n');
ja.append("该排序算法中数据移动次数为: "+ls+'\n');
}
public static void SelectSort(int A[])
{
int temp;int t=0,l=0,q=0;
String ts=new String();//用于将t,q,l分别转换为String型,便于输出
String qs=new String();
String ls=new String();
String time=new String();
long ft=System.currentTimeMillis();
for(int i=0;i<A.length-1;i++)
{
for(int j=i;j<A.length-1;j++)
{
if(A[j]<A[j+1])
{
temp = A[j];
A[j] = A[j + 1];
A[j + 1] = temp;
l++;
q+=3;
}
t++;
}
temp = A[A.length-1];
A[A.length-1] = A[i];
A[i] = temp;
l++;
q+=3;
}
long lt=System.currentTimeMillis();
ja.append("选择排序算法运行结果为:"+'\n');
time=String.valueOf(lt-ft);
ja.append("运行该算法的时间为:"+time+'\n');
cout(A);
ts=String.valueOf(t);//int转换为String
qs=String.valueOf(t);
ls=String.valueOf(t);
ja.append("该排序算法中数据比较次数为: "+ts+'\n');
ja.append("该排序算法中数据交换次数为: "+qs+'\n');
ja.append("该排序算法中数据移动次数为: "+ls+'\n');
}
public static void Insertsort(int A[])
{
int k=A.length;
int temp;int t=0,l=0,q=0;
int[] B=new int[k];
B[0]=A[0];
String ts=new String();//用于将t,q,l分别转换为String型,便于输出
String qs=new String();
String ls=new String();
String time=new String();
long ft=System.currentTimeMillis();
for(int i=1;i<k;i++)
{
B[i]=A[i];
for(int j=i;j>=1;j--)
{
if(B[j-1]>B[j])
{
temp=B[j];
B[j]=B[j-1];
B[j-1]=temp;
l++;
q+=3;
}
t++;
}
}
long lt=System.currentTimeMillis();
ja.append("插入排序算法运行结果为:"+'\n');
time=String.valueOf(lt-ft);
ja.append("运行该算法的时间为:"+time+'\n');
cout(B);
ts=String.valueOf(t);//int转换为String
qs=String.valueOf(t);
ls=String.valueOf(t);
ja.append("该排序算法中数据比较次数为: "+ts+'\n');
ja.append("该排序算法中数据交换次数为: "+qs+'\n');
ja.append("该排序算法中数据移动次数为: "+ls+'\n');
}
public static void cout(int A[])
{//实现排序结果的输出
String As=new String();//用于将ing转换为String
ja.append("排序的结果: ");
for(int k=0;k<A.length;k++)
{
As=String.valueOf(A[k]);
ja.append(A[k]+" ");
}
ja.append(""+'\n');
}
}
你帮我看一下吧,还有,我这个程序一输入汉字就会有问题,只有输入整数才可以,有没有可以捕捉错误的方法,我试了catch(Exception e)怎么不行啊,谢谢