刚学JAVA,请指教,如何写这样的Applet?(关于字符串)

SkyGG 2002-01-06 06:01:07
编写一个Applet,接受用户输入的字符串,并按字典序输出!

我的想法是这样的:
1。用一个Button,(排序过程开始)一个Label,(用户提示)一个TextField,(接受用户的输入)
2。建立一个String数组保存输入
3。利用字符串compareTo()方法写一个冒泡排序算法
4。在Applet的paint()方法里显示排序后的字符串
请教代码!
...全文
101 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
莫等闲 2002-01-07
  • 打赏
  • 举报
回复
关于排序排序算法嘛,原理一样怎么写都行,我一看你的算法怎么好象是从清华的《数据结构》上来的,呵呵,其中有个设置 flag的优化问题我当时是第一次见到,印象深刻
莫等闲 2002-01-07
  • 打赏
  • 举报
回复
惭愧,我是刚毕业的!
aladdina@263.net,这个速度最快:)
SkyGG 2002-01-07
  • 打赏
  • 举报
回复
无论如何也要谢谢aladdina(Aladdina),说来惭愧,我是计算机系即将毕业的学生,回顾三年多的大学生活,我有许多的感慨。我最好的老师不是在学校,而是在CSDN上我认识了许多的朋友,你也是一个。留下你的email好吗?我的是kaka@public.lz.gs.cn.
莫等闲 2002-01-07
  • 打赏
  • 举报
回复
import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class strApplet extends Applet implements ActionListener
{
Button btn;
Label prompt;
TextField input;
String[] StrArr=new String[10];
int count;

/**Initialize the applet*/
public void init() {
add(btn = new Button("Sort")); // 这里没有生成对象,会产生异常
add(input = new TextField(30)); // 这里没有生成对象,会产生异常
add(prompt = new Label("input 1 strings"));// 这里没有生成对象,会产生异常
input.addActionListener(this);
btn.addActionListener(this); // 这里没有为SORT按钮添加响应
}

public void paint(Graphics g)
{
for(int i=0;i<StrArr.length;i++){
if(StrArr[i] != null) // 第一次没有初始化的时候会发生异常
g.drawString(StrArr[i],10,40+15*i);
}
}
public void actionPerformed(ActionEvent e){
if (e.getSource()==input){
StrArr[count++] = input.getText();
if(count<10){
prompt.setText("Input "+count+" strings");
input.setText("");
}
else{
prompt.setText("输入完毕!");
input.setVisible(false);
}
}
else if (e.getSource()==btn){ // 这里最好加上 ELSE
StrArrSort();
repaint();
}
}
void StrArrSort()
{
int flag = 0,i,j;
String StrTemp;
for(i=0;i<StrArr.length;i++){
flag=0;
for(j=0;j<StrArr.length-i-1;j++){
if (StrArr[j].compareTo(StrArr[j+1])>0)
{ // 你的程序中这里没有“{”,实际上只有一条语句执行
flag=1;
StrTemp=StrArr[j];
StrArr[j]=StrArr[j+1];
StrArr[j+1]=StrTemp;
}
}
// flag标志判断应该在这里,否则无法发生作用!
if (flag==0 )return;
}
// flag标志判断 老的位置
}
}
// 这里曾经多了一个 “}”
SkyGG 2002-01-06
  • 打赏
  • 举报
回复
谢谢aladdina(Aladdina),但你的排序算法好象有些不对,另,要求是用字符串数组,但我不知用String还是StringBuffer数组,我不知道它的读写方法,我随便写了一下,但我觉的有些不对,不知道是哪。拿出来献丑,大家探讨一下。
//字典序输出字符串
package strsort;

import java.awt.*;
import java.awt.event.*;
import java.applet.*;

public class strApplet extends Applet implements ActionListener{

Button btn;
Label prompt;
TextField input;
String[] StrArr=new String[10];
int count;

/**Initialize the applet*/
public void init() {
add(btn);
add(input);
add(prompt);
input.addActionListener(this);
}

public void paint(Graphics g){
for(int i=0;i<StrArr.length;i++){
g.drawString(StrArr[i],10,40+15*i);
}
}
public void actionPerformed(ActionEvent e){
if (e.getSource()==input){
StrArr[count++]=input.getText();
if(count<10){
prompt.setText("Input"+count+"strings");
input.setText("");
}
else{
prompt.setText("输入完毕!");
input.setVisible(false);
}
}
if (e.getSource()==btn){
StrArrSort();
repaint();
}
}
void StrArrSort(){
int flag,i,j;
String StrTemp;
for(i=0;i<StrArr.length;i++){
flag=0;
for(j=0;j<StrArr.length-i-1;j++){
if (StrArr[j].compareTo(StrArr[j+1])>0)
flag=1;
StrTemp=StrArr[j];
StrArr[j]=StrArr[j+1];
StrArr[j+1]=StrTemp;
}
}
if (flag==0 )
return;
}
}
}
EthanJiang0827 2002-01-06
  • 打赏
  • 举报
回复
我觉得将那个字符串转成字符数组后用sort直接排序然后输出就好了阿!
莫等闲 2002-01-06
  • 打赏
  • 举报
回复
faint!贴出去后格式就不对了,真是抱歉,因为格式话用的是TAB,这个TAB页面好象没处理。
另外,关于用compareTo比较是什么意思?还有,用PAINT显示好象不太准确吧。还有一个问题,sortStart.addActionListener(new ActionListener() {。。。})用的是匿名类,应该可以理解吧。
莫等闲 2002-01-06
  • 打赏
  • 举报
回复
/*
* 我也是新手,写一个练练
*/

import java.awt.*;
import java.awt.event.*;
import java.applet.*;


public class T1 extends Applet {

private Label labelTip;
private Button sortStart;
private TextField text;

private String resultText;

public void init() {

add(labelTip = new Label("Input a string:"));
add(text = new TextField(30));
add(sortStart = new Button("SORT"));

sortStart.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("Start To Sort...");

char[] arrayChar = text.getText().toCharArray();
char bubble;
for(int i = 0; i < arrayChar.length; i++)
{
for(int j = i; j < arrayChar.length; j++)
{
if(arrayChar[i] > arrayChar[j])
{
bubble = arrayChar[i];
arrayChar[i] = arrayChar[j];
arrayChar[j] = bubble;
}
}
}
resultText = new String(arrayChar);
System.out.println("The Result is: " + resultText);

repaint();


System.out.println("End Sort...");
}
}
);
}

public void paint(Graphics g) {
g.drawString(resultText,10,50);
}

}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧