java applet 用paint方法输入字符串再输出打印

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

public class test extends Applet implements ActionListener
{
String[]student= new String[5];
TextField input;
Button btn = new Button("打印");
int a;
public void init()
{
TextField input = new TextField(5);
add(input);
add(btn);
input.addActionListener(this);
btn.addActionListener(this);
}
public void paint(Graphics g)
{
for(int i=0;i<student.length;i++)
g.drawString(student[i],10+50*i,10);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==input)
{
student[a++]=input.getText();
}
if(e.getSource()==btn)
{
for(int i=0;i<student.length;i++)
{
repaint();
}
}
}

}
我觉的是student[a++]=input.getText();没有转换成字符串型所以接受不到我输入的字符串
展开
 我来答
406705
2009-11-05 · TA获得超过467个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:0
展开全部
楼主请注意了!!
1.你上面声明了TextField input; 但是在
public void init()
{
TextField input = new TextField(5);
。。}
中你又声明了input,导致下面的代码用的是上面的第一次声明的input,而上面的input有没有实例化,是个空对象。
2.(e.getSource()==input)没有用,没起到监听作用。
3.才开始程序一加载 g.drawString(student[i],10+50*i,10)中的student[i]为空。
修改如下:
import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Test2 extends Applet implements ActionListener
{
String[]student= new String[5];
TextField input;
Button btn = new Button("打印");
int a;
public void init()
{
input = new TextField(5);
add(input);
add(btn);
input.addActionListener(this);
btn.addActionListener(this);
}
public void paint(Graphics g)
{
for(int i=0;i<student.length;i++)
if(student[i]!=null){
g.drawString(student[i],10+50*i,10);
}
}
public void actionPerformed(ActionEvent e)
{

if(e.getSource()==btn)
{
student[a++]=input.getText();
for(int i=0;i<student.length;i++)
{
repaint();
}
}
}

}
daay1986
2009-11-05 · TA获得超过6018个赞
知道大有可为答主
回答量:2208
采纳率:0%
帮助的人:1479万
展开全部
你要打印到那里去啊,你这样就算改好了打印也出不来,布局都没有,画的肯定出不来。
import java.awt.BorderLayout;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Test extends JApplet implements ActionListener {

String student;
JTextField input;
JPanel panel;
JButton btn = new JButton("打印");

public void init() {
input = new JTextField();
add(input, BorderLayout.NORTH);
panel = new JPanel() {

public void paint(Graphics g) {
if (student != null) {
g.drawString(student, 20, 20);
}
}
};
add(panel, BorderLayout.CENTER);
add(btn, BorderLayout.SOUTH);
input.addActionListener(this);
btn.addActionListener(this);
}

public void actionPerformed(ActionEvent e) {
if (e.getSource() == input) {
student = input.getText();
}
if (e.getSource() == btn) {
student = input.getText();
panel.repaint();
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式