62,614
社区成员
发帖
与我相关
我的任务
分享
public class canva1 extends Canvas implements ActionListener{
Image img[];
int pg=0;
int f1=0;
int arry[] = new int[10];
canva1(){
img = new Image[200];
Toolkit t1=getToolkit();
for(int i=0;i<=199;i++){
img[i]=t1.getImage("photo/0"+i+".jpg");
}
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==Panel.but1) {
//Panel panel1 = new Panel();
f1=1;
Random rand = new Random();
pg = (int)(Math.random()*200);
System.out.println(pg);
repaint();
}
if(e.getSource()==Panel.but2) {
f1=2;
for(int i=0;i<10;i++) {
arry[i]=(int)(Math.random()*200);
System.out.print(" "+arry[i]);
}
}
}
public void paint(Graphics g) {
if(f1 == 1) {
g.drawImage(img[pg], 30, 30, 88, 85,this);
}
if(f1==2) {
}
}
}
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class AWTFrame extends JFrame implements ActionListener{
/**
*
*/
private static final long serialVersionUID = -3948792087186265701L;
private JPanel contentPane;
Canva1 canvas = new Canva1();
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
AWTFrame frame = new AWTFrame();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public AWTFrame() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 794, 638);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
canvas.setBounds(0, 39, 778, 551);
contentPane.add(canvas);
Button btn1 = new Button("btn1");
btn1.addActionListener(this);
btn1.setBounds(0, 10, 76, 23);
contentPane.add(btn1);
Button btn2 = new Button("btn2");
btn2.addActionListener(this);
btn2.setBounds(94, 10, 76, 23);
contentPane.add(btn2);
}
@Override
public void actionPerformed(ActionEvent e) {
if (e.getSource() instanceof Button) {
Button btn = (Button) e.getSource();
System.out.println("click btn : " + btn.getName() + " label : " + btn.getLabel());
if (btn.getLabel().equalsIgnoreCase("btn1")) {
System.out.println("click btn1");
// Panel panel1 = new Panel();
// f1 = 1;
// this.paint(this.getGraphics());
// canvas.repaint();
canvas.drawImages(1);
// repaint();
} else if (btn.getLabel().equalsIgnoreCase(
"btn2")) {
System.out.println("click btn2");
canvas.drawImages(2);
// f1 = 2;
}
}
// if (e.getSource() == Panel.but2) {
// }
//
// }
}
}
import java.awt.Canvas;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Toolkit;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Canva1 extends Canvas {
/**
*
*/
private static final long serialVersionUID = 321971567505371826L;
Image img[];
int pg = 0;
int f1 = 0;
int arry[] = new int[10];
public Canva1() {
img = new Image[10];
Toolkit t1 = getToolkit();
for (int i = 0; i < 10; i++) {
img[i] = t1.getImage("images/0" + i + ".jpg");
}
}
@Override
public void repaint() {
Graphics g = this.getGraphics();
update(g);
}
@Override
public void paint(Graphics g) {
g.clearRect(0, 0, this.WIDTH, this.HEIGHT);
Random rand = new Random();
if (f1 == 1) {
pg = rand.nextInt(10);
System.out.println(pg);
g.drawImage(img[pg], 30, 30, 80, 80, this);
}
if (f1 == 2) {
List<Integer> indexs = new ArrayList<Integer>();
int startx = 30;
int starty = 30;
for(int i = 0; i < 10; i++){
pg = rand.nextInt(10);
while(indexs.contains(pg)){
pg = rand.nextInt(10);
}
indexs.add(pg);
System.out.println(pg);
if(i< 5){
System.out.println("1 row x:" + (10 + (i * 80)) );
g.drawImage(img[pg], i * 80 + startx + 100, starty, 80, 80, this);
}
else{
System.out.println("*************************");
System.out.println("2 row x:" + (10 + (i-5) * 80 + 15));
g.drawImage(img[pg], startx + (i-5) * 80 + 100, starty + 180, 80, 80, this);
}
}
}
}
public void drawImages(int flag){
this.repaint();
}
}
这是分别画一个图和两层随机10个图的效果。参考下吧