黑马程序员技术交流社区
标题:
applet的问题
[打印本页]
作者:
周洋
时间:
2012-3-11 23:13
标题:
applet的问题
为什么tf1.requestFocus();不聚焦;
为什么我写上了invalidate();validate();,还要缩放一下applet温度变化曲线才会出来!
刚学习这个,所以还不太熟悉,请帮下忙,下面是部分代码!!
import java.applet.*;
import java.awt.*;
import java.awt.event.*;
public class LineGraph extends Applet implements ActionListener
{
int a1,a2,a3,a4,a5;
Label Title=new Label("Enter 5 daily temperatures and press ENTER in box 5");
Label day1=new Label("Day1");
TextField tf1=new TextField("");
Label day2=new Label("Day2");
TextField tf2=new TextField("");
Label day3=new Label("Day3");
TextField tf3=new TextField("");
Label day4=new Label("Day4");
TextField tf4=new TextField("");
Label day5=new Label("Day5");
TextField tf5=new TextField("");
public void init()
{
add(Title);
add(day1);
add(tf1);
add(day2);
add(tf2);
add(day3);
add(tf3);
add(day4);
add(tf4);
add(day5);
add(tf5);
tf5.addActionListener(this);
tf4.addActionListener(this);
tf3.addActionListener(this);
tf2.addActionListener(this);
tf1.addActionListener(this);
tf1.requestFocus();
}
public void paint(Graphics g)
{
g.drawLine(20,300,180,300); //温度变化曲线
g.drawLine(20, 70, 20, 300);
g.drawLine(20,(300-4*a1),60,(300-4*a2));
g.drawLine(60,(300-4*a2),100,(300-4*a3));
g.drawLine(100,(300-4*a3),140,(300-4*a4));
g.drawLine(140,(300-4*a4),180,(300-4*a5));
}
public void actionPerformed(ActionEvent arg0)
{
a1=Integer.parseInt(tf1.getText());
a2=Integer.parseInt(tf2.getText());
a3=Integer.parseInt(tf3.getText());
a4=Integer.parseInt(tf4.getText());
a5=Integer.parseInt(tf5.getText());
invalidate();
validate();
}
作者:
刘蕴学
时间:
2012-3-12 01:10
本帖最后由 了无尘 于 2012-3-12 19:24 编辑
因为eclipse启动applet是通过创建一个简单的html页面调用该applet,在这个html页面的默认设置是applet的显示区大小为200 200 ,你的显示区大于这个,所以你必须放大窗口才能看见
当然那个函数是做组件检查的,正常你不缩放窗体applet是不会重绘的,需要你手动repaint()
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2