楊小白 2016-07-10 11:12 采纳率: 0%
浏览 1160

用一个类来放图片,被其他类调用怎么写???

我想问一下被注释掉的在一个类里放图片,怎么创建一个MyImg的类放自己的图片,想要的结果如图图片说明

package test;

import java.awt.Color;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Test extends JFrame {
JLabel win,draw,lose,score,count;//设置标签,分别为赢、平、输、得分、总局
JLabel jl,jl1; //设置标签,分别为“电脑输出是”、“你输出的是”
final JLabel jl2,jl3;//设置标签,分别是电脑输出是与你输出的是的内容
JLabel jl4,jl5; //猜拳的结果显示“你赢了”,“你输了”,“平手”
public String person;
public String m;
int j;
int i;
int swin,sdraw,slose,sscore;
int flag1, count1;
final String[] arr = new String[3];
public void Win(String person) {
arr[0] = "石头";
arr[1] = "剪刀";
arr[2] = "布";
person = arr[j];
i = (int) (Math.random() * 3);
String c = arr[i];

//判断输赢
if (c.equals(person)) {
jl5.setText("平手");
flag1 = 0;
} else if (c.equals("剪刀") && person.equals("石头") ||
c.equals("石头")&& person.equals("布") ||
c.equals("布") && person.equals("剪刀")) {
jl5.setText("你赢了");
flag1 = 2;
} else {
jl5.setText("你输了");
flag1 = 1;
}
this.finalresult();
}
public Test() {
JFrame jf = new JFrame();
setSize(500, 500);
this.setTitle("猜拳游戏");
this.setLayout(null);
win = new JLabel("赢:"+swin);
draw = new JLabel("平:"+sdraw);
lose = new JLabel("输:"+slose);
score = new JLabel("得分:"+sscore);
count = new JLabel("总局:"+count1);

    win.setBounds(50, 0, 60, 50);
    draw.setBounds(130, 0, 80, 50);
    lose.setBounds(210, 0, 80, 50);
    score.setBounds(290, 0, 90, 50);
    count.setBounds(390, 0, 90, 50);

    Font f1 = new Font("华文行楷",1,20);
    win.setFont(f1);
    draw.setFont(f1);
    lose.setFont(f1);
    score.setFont(f1);
    count.setFont(f1);

    win.setForeground(Color.cyan);
    draw.setForeground(Color.green);
    lose.setForeground(Color.blue);
    score.setForeground(Color.black);
    count.setForeground(Color.pink);
    this.setBackground(Color.red);

    this.add(win);
    this.add(draw);
    this.add(lose);
    this.add(score);
    this.add(count);

    jl = new JLabel("电脑出的是:"); 
    jl.setBounds(50, 100, 150, 70); 
    this.add(jl); 
    jl1 = new JLabel("你出的是:"); 
    jl1.setBounds(50, 210, 150, 70); 
    this.add(jl1); 
    // 电脑的出的拳标签
    jl2 = new JLabel(); 
    jl2.setBounds(200, 100, 150, 70); 
    this.add(jl2); 
    //我出的拳的标签
    jl3 = new JLabel(); 
    jl3.setBounds(200, 210, 150, 70); 
    this.add(jl3); 
    jl4 = new JLabel("输出结果:"); 
    jl4.setBounds(50, 300, 150, 70); 
    this.add(jl4); 
    jl5 = new JLabel(""); 
    jl5.setBounds(200, 300, 150, 70); 
    this.add(jl5); 

    Font f2 = new Font("华文行楷",1,20);
    jl.setFont(f2);
    jl1.setFont(f2);
    jl2.setFont(f2);
    jl3.setFont(f2);
    jl4.setFont(f2);
    jl5.setFont(f2);

    // 按钮
    final JButton btn = new JButton(""); 
    btn.setBounds(200, 210, 50, 70); 
    this.add(btn); 
    final JButton btn1 = new JButton(""); 
    btn1.setBounds(280, 210, 50, 70); 
    this.add(btn1); 
    final JButton btn2 = new JButton(""); 
    btn2.setBounds(360, 210, 50, 70); 
    this.add(btn2);

    final JButton clear = new JButton("成绩置零");
    Font f3 = new Font("华文行楷",1,20);
    clear.setFont(f3);
    clear.setBounds(50, 380, 160, 50);
    this.add(clear);
    btn.setBorderPainted(false);
    btn1.setBorderPainted(false);
    btn2.setBorderPainted(false);
    btn.setIcon(new ImageIcon("D:\\shitou.gif"));
    btn1.setIcon(new ImageIcon("D:\\jiandao.gif"));
    btn2.setIcon(new ImageIcon("D:\\bu.gif"));

btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
//如果你鼠标点击的是石头按钮
j = 0;
String b = btn.getActionCommand();
jl3.setText(b);
//jl3.setIcon(new ImageIcon(MyImg.class.getResource(j+".png")));
Win(person);
//Test.this.jl2.setIcon(new ImageIcon(MyImg.class.getResource(i+".png")));
Test.this.jl2.setText(arr[i]);
System.out.println(arr[i]);
}
});

btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
j = 1;
String b1 = btn1.getActionCommand();
jl3.setText(b1);
//jl3.setIcon(new ImageIcon(MyImg.class.getResource(j+".png")));
Win(person);
//Test.this.jl2.setIcon(new ImageIcon(MyImg.class.getResource(i+".png")));
Test.this.jl2.setText(arr[i]);
System.out.println(arr[i]);
System.out.println(b1);
}
});

btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
j = 2;
String b2 = btn2.getActionCommand();
jl3.setText(b2);
//jl3.setIcon(new ImageIcon(MyImg.class.getResource(j+".png")));
Win(person);
Test.this.jl2.setText(arr[i]);
System.out.println(arr[i]);
//Test.this.jl2.setIcon(new ImageIcon(MyImg.class.getResource (i+".png")));
System.out.println(b2);
}
});
clear.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    if(e.getSource() == clear){
           swin = 0;
           sdraw = 0;
           slose = 0;
           sscore = 0;
           count1 = 0;

           win.setText("赢:" + swin);
           draw.setText("平:" + sdraw);
           lose.setText("输:" + slose);
           score.setText("得分:" + sscore);
           count.setText("总局:" + count1);
          }
}

});
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setResizable(false);
}

private void finalresult() {
// TODO Auto-generated method stub
if(flag1==0){
sdraw ++;
draw.setText("平:"+sdraw);
score.setText("得分:"+sscore);
}
if(flag1==1){
slose ++;
sscore=sscore-1;
lose.setText("输:"+slose);
score.setText("得分:"+sscore);
}
if(flag1==2) {
swin ++;
sscore=sscore+1;
win.setText("赢:"+swin);
score.setText("得分:"+sscore);
}
count1=swin+slose+sdraw;
count.setText("总局:"+count1);
}
public static void main(String[] args) {
Test t = new Test();
}

}

  • 写回答

2条回答 默认 最新

  • devmiao 2016-07-10 14:30
    关注
    评论

报告相同问题?

悬赏问题

  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 flask项目,怎么使用AJAX传数据库数据到echarts图表的data里,实现异步加载数据。
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题