Kita sering melihat beberapa gambar yang diperbarui secara dinamis di halaman web, yang paling umum adalah grafik garis K saham. Artikel ini mencoba menggunakan contoh sederhana untuk menunjukkan kepada Anda cara memanggil JavaBean melalui JSP untuk menghasilkan histogram secara dinamis di halaman web. .
Latar Belakang: Ketika saya sedang mengembangkan proyek untuk biro statistik baru-baru ini, saya terlibat dalam masalah pembuatan gambar secara dinamis di halaman web. Saya membutuhkan waktu satu hari dan akhirnya menyelesaikannya untuk membantu semua orang menghindari jalan memutar ketika menghadapinya masalah yang sama di masa depan, sekarang saya akan menerbitkan ide desain dan kode sumber agar semua orang dapat berbagi. Kode berikut berhasil diuji pada Windows 2000, dan server aplikasi Web menggunakan Jrun3.0 Allaire.
Langkah 1: Buat Java Bean untuk menghasilkan file jpg.
Program sumbernya adalah sebagai berikut:
//Java Bean untuk menghasilkan gambar
//Penulis: Cui Guanyu
//Tanggal:24-08-2001
import java.io.*;
import java.util.*;
import com.sun.image.codec.jpeg.*;
import java.awt.image.*;
import java.awt.*;
kelas publik ChartGraphics {
Gambar BufferedImage;
public void createImage(String fileLokasi) {
mencoba {
FileOutputStream fos = FileOutputStream baru(fileLocation);
BufferedOutputStream bos = BufferedOutputStream baru(fos);
Encoder JPEGImageEncoder = JPEGCodec.createJPEGEncoder(bos);
encoder.encode(gambar);
bos.close();
} tangkapan(Pengecualian e) {
Sistem.keluar.println(e);
}
}
public void imagesGeneration(int h1,int h2,int h3,int h4,int h5) {
final int X=10;
;
//Lebar gambar int imageHeight = 300; //Tinggi gambar int ColumnWidth=30; //Lebar kolom int ColumnHeight=200;
chartGraphics = ChartGraphics baru();
chartGraphics.image = BufferedImage baru(imageWidth, imageHeight, BufferedImage.TYPE_INT_RGB);
Grafik grafis = chartGraphics.image.getGraphics();
grafis.setColor(Warna.putih);
grafis.fillRect(0,0,imageWidth,imageHeight);
grafis.setColor(Warna.merah);
grafis.drawRect(X+1*columnWidth, ColumnHeight-h1, ColumnWidth, h1);
grafis.drawRect(X+2*columnWidth, ColumnHeight-h2, ColumnWidth, h2);
grafis.drawRect(X+3*columnWidth, ColumnHeight-h3, ColumnWidth, h3);
grafis.drawRect(X+4*columnWidth, ColumnHeight-h4, ColumnWidth, h4);
grafis.drawRect(X+5*columnWidth, ColumnHeight-h5, ColumnWidth, h5);
chartGraphics.createImage("D:\temp\chart.jpg");
}
}
Penjelasan: Metode createImage(String fileLocation) digunakan untuk membuat gambar JPG. Parameter fileLocation adalah jalur file.
Metode grafisGeneration(int h1, int h2, int h3, int h4, int h5) digunakan untuk menggambar konten. dari gambar. Parameter h1...h5 Langkah 2 untuk tinggi setiap persegi panjang
: Buat Java Bean lain untuk membaca data dari file teks (tinggi setiap persegi panjang). database.
Program sumbernya adalah sebagai berikut:
//Baca file teks Java Bean untuk data
//Penulis: Cui Guanyu
//Tanggal:24-08-2001
import java.io.*;
GetData kelas publik {
int heightArray[] = int baru[5];
publik int[] getHightArray() {
mencoba {
RandomAccessFile randomAccessFile = new RandomAccessFile ("d:\temp\ColumnHeightArray.txt","r");
untuk (int i=0;i<5;i++)
{
heightArray[i] = Integer.parseInt(randomAccessFile.readLine());
}
}
tangkapan(Pengecualian e) {
Sistem.keluar.println(e);
}
kembalikan heightArray;
}
}
Penjelasan: getHightArray() digunakan untuk membaca data dari teks, mengubah tipe String dalam teks menjadi tipe int, dan mengembalikannya sebagai tipe array.
Langkah 3: Buat program sumber file JSP
sebagai berikut:
<%@ halaman import="Grafik Grafik" %>
<%@ halaman import="GetData" %>
<jsp:useBean id="cg" class="ChartGraphics"/>
<jsp:useBean id="gd" class="GetData"/>
<%!
int tinggi[]= int baru[5];
%>
<%
tinggi=gd.getHightArray();
cg.graphicsGeneration(tinggi[0],tinggi[1],tinggi[2],tinggi[3],tinggi[4]);
%>
<html>
<tubuh>
<img src="d:tempchart.jpg"></img>
</badan>
</html>
Penjelasan: JSP terlebih dahulu memanggil Bean (GetData..class) untuk membaca data dalam file, kemudian memanggil Bean (ChartGraphics.class) untuk menghasilkan gambar, dan terakhir menampilkan gambar tersebut.
Kesimpulan: Karena data dalam teks (ColumnHeightArray.txt) dapat berubah kapan saja, tinggi lima persegi panjang pada gambar yang dihasilkan juga berubah, sehingga mewujudkan pembuatan gambar yang dinamis sistem pemungutan suara situs web.