一道Java编程题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一道Java编程题相关的知识,希望对你有一定的参考价值。
写Applet小程序,界面如图所示,在文本框中输入三个整数后按回车,会在状态栏显示从小到大顺序排列结果,并同时清空文本框中内容,以备下一次的输入。
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吧?没关系,我能看懂!
参考技术A 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中的工具抱中有一个类是可以帮你排序的,干嘛要去自己写!!
追问初学者表示不懂,而且这是作业!
追答额 怎么能有这种态度,不懂才要去学,懂了还去学干嘛?这里既然你在这里问到了,那么肯定教给你更简洁,方便的代码,以后遇到了,你肯定就知道有简单的方法...可以处理这样的问题!!!
追问你说的那个我们根本就没学,我怎么能用?你让我按你那高深的方法去写,难道你想让我被老师发现是抄别人的吗?
参考技术B 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);有误,应该是在状态栏里显示的!
参考技术C - -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;
封装成一个数组放进去,无论多长都可以排序成从大到小
历史上最简单的一道Java面试题,但无人能通过
public boolean isOdd(int i)
public boolean isOdd(int i) {
if (i % 2 == 1) {
System.out.println("是奇数");
} else {
System.out.println("是偶数");
}
}
public boolean isOdd(int i) {
if (i % 2 == 1) {
return true;
} else {
return false;
}
}
public boolean isOdd(int i) {
return i % 2 == 1;
}
public boolean isOdd(int i) {
return i % 2 == 1 || i % 2 == -1;
}
public boolean isOdd(int i) {
return i % 2 != 0;
}
public boolean isOdd(int i) {
return i >> 1 << 1 != i;
}
public boolean isOdd(int i) {
return (i & 1) == 1;
}
达内6月免费训练营正式报名啦,马上阅读原文,就能第一时间体验和学习IT技能!进入高薪名企的IT行业,名额有限,先到先得!
课程咨询:达妹微信:flow_13,欢迎添加,了解课程介绍,获取学习资源。
最近微信修改了推送规则,为了让大家第一时间收到我们的文章,请朋友们看完文章后点一下右下角的“在看”或“星标”。好不容易认识你,我可不想失去你♥♥♥
点击下方“阅读原文”抢6月免费训练营名额吧!
以上是关于一道Java编程题的主要内容,如果未能解决你的问题,请参考以下文章