一道Java编程题

写Applet小程序,界面如图所示,在文本框中输入三个整数后按回车,会在状态栏显示从小到大顺序排列结果,并同时清空文本框中内容,以备下一次的输入。... 写Applet小程序,界面如图所示,在文本框中输入三个整数后按回车,会在状态栏显示从小到大顺序排列结果,并同时清空文本框中内容,以备下一次的输入。 展开
 我来答
老冯文库
2012-03-17 · 知道合伙人软件行家
老冯文库
知道合伙人软件行家
采纳数:1139 获赞数:8734

向TA提问 私信TA
展开全部

Java程序:

import java.awt.FlowLayout;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import javax.swing.JApplet;

import javax.swing.JLabel;

import javax.swing.JTextField;

public class Test27 extends JApplet implements KeyListener{

JTextField txt1, txt2, txt3;

public void init(){

this.setLayout(new FlowLayout());

txt1 = new JTextField(10);

txt2 = new JTextField(10);

txt3 = new JTextField(10);

txt3.addKeyListener(this);

this.add(new JLabel("输入第1个整数"));

this.add(txt1);

this.add(new JLabel("输入第2个整数"));

this.add(txt2);

this.add(new JLabel("输入第3个整数"));

this.add(txt3);

this.setSize(250, 200);

this.setVisible(true);

}

@Override

public void keyPressed(KeyEvent e) {

if(e.getKeyCode() == 10){//按下回车键

int num1, num2, num3;

int temp;

//获取来自文本框的值

num1 = Integer.parseInt(txt1.getText());

num2 = Integer.parseInt(txt2.getText());

num3 = Integer.parseInt(txt3.getText());

//对三个数按非递减排序

if(num1 > num2){

temp = num1;

num1 = num2;

num2 = temp;

}

if(num2 > num3){

temp = num2;

num2 = num3;

num3 = temp;

}

if(num1 > num2){

temp = num1;

num1 = num2;

num2 = temp;

}

//在状态栏显示数据

this.showStatus(num1 + ", " + num2 + ", " + num3);

//清空文本框

txt1.setText(null);

txt2.setText(null);

txt3.setText(null);

}

}

@Override

public void keyReleased(KeyEvent e) {

}

@Override

public void keyTyped(KeyEvent e) {

}

}

运行测试:

追问
哈哈,你比较了两次num1和num2吧?没关系,我能看懂!
felixnan168
2012-03-17 · TA获得超过1330个赞
知道小有建树答主
回答量:339
采纳率:50%
帮助的人:268万
展开全部
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Arrays;

import javax.swing.JLabel;
import javax.swing.JTextField;

public class MyApplet extends Applet {
private static final long serialVersionUID = 1L;

private JLabel jl;
private JTextField jtf;
private JTextField[] text = new JTextField[3];//设置输入框数组

public MyApplet() {
jl = new JLabel("第一个整数:");
this.add(jl, BorderLayout.WEST);
jtf = new JTextField(10);
this.add(jtf);
text[0] = jtf;//输入框1放进输入框数组中
jl = new JLabel("第二个整数:");
this.add(jl, BorderLayout.WEST);
jtf = new JTextField(10);
this.add(jtf);
text[1] = jtf;//输入框2放进输入框数组中
jl = new JLabel("第三个整数:");
this.add(jl, BorderLayout.WEST);
jtf = new JTextField(10);
this.add(jtf);

//加入监听
jtf.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
int[] num = new int[3];
// 取出数据
for (int i = 0; i < num.length; i++) {
//将输入框数组转换成数组存入数组,方便排序
num[i] = Integer.parseInt(text[i].getText());
text[i].setText(null);
}
Arrays.sort(num);// 用arrays类中sort方法排序,从小到大
String str = num[0] + "--" + num[1] + "--" + num[2];
MyApplet.this.showStatus("排序大小为:" + str);
}
}
});
text[2] = jtf; //输入框3放进输入框数组中
this.setVisible(true);
}
}
更多追问追答
追问
我是初学者,你写的太难了……
追答
很难么?JDK中的工具抱中有一个类是可以帮你排序的,干嘛要去自己写!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
嗨皮汪小成
2012-03-18 · 超过12用户采纳过TA的回答
知道答主
回答量:78
采纳率:0%
帮助的人:42.9万
展开全部
import java.applet.Applet;
import java.awt.Button;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Test extends Applet implements ActionListener{

/**
* @param args
*/
Button button1,button2;
Panel panel,panel2;
Label label;
TextField text1,text2,text3;
int num1,num2,num3;

public void init(){
button1=new Button("确定");
button2=new Button("取消");
text1=new TextField(8);
text2=new TextField(8);
text3=new TextField(8);
panel=new Panel();
panel2=new Panel();
label=new Label();
panel.setLayout(new GridLayout(3,2,5,5));
panel2.setLayout(new GridLayout(2,2,5,5));
panel.add(new Label("请输入第1个整数"));
panel.add(text1);
panel.add(new Label("请输入第2个整数"));
panel.add(text2);
panel.add(new Label("请输入第3个整数"));
panel.add(text3);

panel2.add(button1);
panel2.add(button2);
panel2.add(label);
this.setLayout(new GridLayout(2,1));
add(panel);
add(panel2);

this.setSize(250, 200);
}

public void start(){
button1.addActionListener(this);
}

public void destroy(){

}

public void stop(){

}

public void paint(Graphics g){
g.setColor(Color.RED);
g.drawString("龙影设计", 40, 150);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object obj = e.getSource();
if(obj==button1){
num1=Integer.parseInt(text1.getText());
num2=Integer.parseInt(text2.getText());
num3=Integer.parseInt(text3.getText());
int temp;
if(num1>num2){
temp=num1;
num1=num2;
num2=temp;
}
else{
if(num2>num3){
temp=num2;
num2=num3;
num3=temp;
}
}
String str=num1+"<"+num2+"<"+num3;
text1.setText("");
text2.setText("");
text3.setText("");
label.setText("结果为:"+str);
//System.out.println(str);
}
}

}
追问
最后一句System.out.println(str);有误,应该是在状态栏里显示的!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
bigjjblackjun
2012-03-17
知道答主
回答量:16
采纳率:0%
帮助的人:15.9万
展开全部
- -d..还是用排序法吧给你个冒泡排序法的代码
public int[] mySort(int [] nums){
for(int i=0;i<nums.length;i++){
for(int j=i;j<nums.length;j++){
if(nums[i]>nums[j]){
int temp=nums[i];
nums[i]=nums[j];
nums[j]=temp;
}
}
}
return nums;
}
封装成一个数组放进去,无论多长都可以排序成从大到小
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式