我有个可以读取整数文件的例子,你作相关的改动就可以了import java.awt.*;
import java.awt.event.*;
import java.applet.*;public class MainApp extends Applet {
ControlsApp controls;
CanvasApp canvas; public void init() {
setLayout(new BorderLayout());
canvas = new CanvasApp();
add("Center", canvas);
add("South", controls = new ControlsApp(canvas));
} public void destroy() {
remove(controls);
remove(canvas);
} public void start() {
controls.setEnabled(true);
} public void stop() {
controls.setEnabled(false);
} public void processEvent(AWTEvent e) {
if (e.getID() == Event.WINDOW_DESTROY) {
System.exit(0);
}
} public static void main(String args[]) {
Frame f = new Frame("TestApp");
MainApp mainApp = new MainApp(); mainApp.init();
mainApp.start(); f.add("Center", mainApp);
f.setSize(600, 600);
f.show();
} public String getAppletInfo() {
return "An interactive test of the Graphics routines.";
}
}//*****************************//
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;class CanvasApp extends Canvas { String[][] datastr1;
int[][] data1;
int gti1;
String filestr="datenum.txt";
Font font = new java.awt.Font("Courier", Font.BOLD, 12); public void paint(Graphics g) {
try{
File file=new File(filestr);
FileReader in=new FileReader(file);
int filesize=(int)file.length();
char[] data=new char[filesize];
int charsreaded=in.read(data);
String datastr=new String(data);
String[] dataall=datastr.split("\n");
datastr1=new String[dataall.length][2];
data1=new int[dataall.length][2];
gti1=dataall.length;
for(int i=0;i<dataall.length;i++){
datastr1[i]=dataall[i].split(" ");
int adate=Integer.valueOf(datastr1[i][0].trim()).intValue();
data1[i][0]=adate;
int anum=Integer.valueOf(datastr1[i][1].trim()).intValue();
data1[i][1]=anum;
}
}
catch (IOException e){
System.out.print("can't read : "+e);
}
Rectangle r = getBounds();
int h = r.height / 20;
int v = r.width / 20;
g.setColor(Color.pink);
for (int i = 1; i <= 20; i++) {
g.drawLine(0, i * h, r.width, i * h);
}
for (int i = 1; i <= 20; i++) {
g.drawLine(i * v, 0, i * v, r.height);
}
g.setColor(Color.blue);
for(int i=1;i<20;i++){
g.drawString(Integer.toString(i),v*i,19*h+h*2/3);
g.drawString(Integer.toString(i*10-10),v/4,20*h-i*h);
}
g.drawString("Num",v,h);
g.drawString("Date",19*v,19*h);
g.setColor(Color.black);
g.setFont(font);
g.drawLine(v, h, v, 19* h);
g.drawLine(v, 19*h, r.width - v, 19* h);
for(int i=0;i<gti1-1;i++){
g.drawLine((data1[i][0])*v,19*h-(data1[i][1])*h/10,(data1[i+1][0])*v,19*h-(data1[i+1][1])*h/10);
}
} public void redraw(boolean cgo,String cfile) {
this.filestr=cfile;
repaint(); }
}
class ControlsApp extends Panel
implements ActionListener {
TextField tfile;
CanvasApp canvas;
Button b = null;
Frame myFrame=new Frame();
FileDialog myDialog=new FileDialog(myFrame,"gogogo"); public ControlsApp(CanvasApp acanvas) {
this.canvas = acanvas;
add(tfile = new TextField("Clink the Go button to input the data files"));
b = new Button("Go");
b.addActionListener(this);
add(b);
} public void actionPerformed(ActionEvent ev) {
myDialog.setMode(myDialog.LOAD);
myDialog.setVisible(true);
String label = ev.getActionCommand();
String fstr=myDialog.getFile();
if(fstr==null) fstr="datenum.txt";
canvas.redraw(label.equals("Go"),fstr);
tfile.setText(fstr);
}
}
import java.awt.event.*;
import java.applet.*;public class MainApp extends Applet {
ControlsApp controls;
CanvasApp canvas; public void init() {
setLayout(new BorderLayout());
canvas = new CanvasApp();
add("Center", canvas);
add("South", controls = new ControlsApp(canvas));
} public void destroy() {
remove(controls);
remove(canvas);
} public void start() {
controls.setEnabled(true);
} public void stop() {
controls.setEnabled(false);
} public void processEvent(AWTEvent e) {
if (e.getID() == Event.WINDOW_DESTROY) {
System.exit(0);
}
} public static void main(String args[]) {
Frame f = new Frame("TestApp");
MainApp mainApp = new MainApp(); mainApp.init();
mainApp.start(); f.add("Center", mainApp);
f.setSize(600, 600);
f.show();
} public String getAppletInfo() {
return "An interactive test of the Graphics routines.";
}
}//*****************************//
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
import java.io.*;class CanvasApp extends Canvas { String[][] datastr1;
int[][] data1;
int gti1;
String filestr="datenum.txt";
Font font = new java.awt.Font("Courier", Font.BOLD, 12); public void paint(Graphics g) {
try{
File file=new File(filestr);
FileReader in=new FileReader(file);
int filesize=(int)file.length();
char[] data=new char[filesize];
int charsreaded=in.read(data);
String datastr=new String(data);
String[] dataall=datastr.split("\n");
datastr1=new String[dataall.length][2];
data1=new int[dataall.length][2];
gti1=dataall.length;
for(int i=0;i<dataall.length;i++){
datastr1[i]=dataall[i].split(" ");
int adate=Integer.valueOf(datastr1[i][0].trim()).intValue();
data1[i][0]=adate;
int anum=Integer.valueOf(datastr1[i][1].trim()).intValue();
data1[i][1]=anum;
}
}
catch (IOException e){
System.out.print("can't read : "+e);
}
Rectangle r = getBounds();
int h = r.height / 20;
int v = r.width / 20;
g.setColor(Color.pink);
for (int i = 1; i <= 20; i++) {
g.drawLine(0, i * h, r.width, i * h);
}
for (int i = 1; i <= 20; i++) {
g.drawLine(i * v, 0, i * v, r.height);
}
g.setColor(Color.blue);
for(int i=1;i<20;i++){
g.drawString(Integer.toString(i),v*i,19*h+h*2/3);
g.drawString(Integer.toString(i*10-10),v/4,20*h-i*h);
}
g.drawString("Num",v,h);
g.drawString("Date",19*v,19*h);
g.setColor(Color.black);
g.setFont(font);
g.drawLine(v, h, v, 19* h);
g.drawLine(v, 19*h, r.width - v, 19* h);
for(int i=0;i<gti1-1;i++){
g.drawLine((data1[i][0])*v,19*h-(data1[i][1])*h/10,(data1[i+1][0])*v,19*h-(data1[i+1][1])*h/10);
}
} public void redraw(boolean cgo,String cfile) {
this.filestr=cfile;
repaint(); }
}
class ControlsApp extends Panel
implements ActionListener {
TextField tfile;
CanvasApp canvas;
Button b = null;
Frame myFrame=new Frame();
FileDialog myDialog=new FileDialog(myFrame,"gogogo"); public ControlsApp(CanvasApp acanvas) {
this.canvas = acanvas;
add(tfile = new TextField("Clink the Go button to input the data files"));
b = new Button("Go");
b.addActionListener(this);
add(b);
} public void actionPerformed(ActionEvent ev) {
myDialog.setMode(myDialog.LOAD);
myDialog.setVisible(true);
String label = ev.getActionCommand();
String fstr=myDialog.getFile();
if(fstr==null) fstr="datenum.txt";
canvas.redraw(label.equals("Go"),fstr);
tfile.setText(fstr);
}
}
解决方案 »
- EventHandler.create问题
- 求助:netbean生成项目乱码
- 如何有效去除StringBuffer中字符串的最后一个非空字符????
- 解決錯誤 sun.java2d.loops.DrawGlyphList.DrawGlyphList(Native Method)
- 请大家救救我吧 jdk 死活装不上啊
- 为什么要最大化后才能看见?
- 我的三星152S每次看到,都有一种惊艳的感觉,大力推荐!!!!!!顺便问个小问题
- 在看java tutorial时,都会启动一个java console,这是什么?
- thinking in java 的迷惑
- 在java的GUI的应用程序中能否实现对容器(如Frame)中的所有组件遍历?
- 关于在Jtable中内嵌下拉框的问题
- GregorianCalendar 的问题,想做个时间检查器,可是有问题,请大家一起帮忙
datanum.txt等文件为数据文件
在主窗口中点击 go选择数据文件,数据文件格式为 日期 人数
日期 人数
........
........
其中日期为1-20,人数为1-200;
最大可容纳20组数据.
运行时须一个datenum.txt文件
1 123
2 94
3 108
4 96
5 115
6 105
7 68
8 70
9 102
10 77
11 91
12 79
14 122
15 101
16 46
17 63
就可以了,这是默认文件,所以必须