java怎样实现点击一个带图片按钮的,然后把按钮的图片显示在指定label上?没财富值了,谢谢

java怎样实现点击一个带图片按钮的,然后把按钮的图片显示在指定label上?没财富值了,谢谢如图所示,怎样实现点击下面的头像后,把点击的图片显示在头像右边的label上... java怎样实现点击一个带图片按钮的,然后把按钮的图片显示在指定label上?没财富值了,谢谢如图所示,怎样实现点击下面的头像后,把点击的图片显示在头像右边的label上? 展开
 我来答
雪飞潇潇
2018-01-01 · TA获得超过6273个赞
知道大有可为答主
回答量:1968
采纳率:91%
帮助的人:852万
展开全部

显示效果图

eclipse里的目录如下

完整的代码和详细的注释

import java.awt.BorderLayout;
import java.awt.event.*;
import javax.swing.*;

//该窗口继承与JFrame 实现了ActionListener接口
public class MyFrame extends JFrame implements ActionListener {
JButton jbShow, jbHide;//定义按钮
JTextField jtf;//定义文本框
JLabel jl;
public MyFrame() {
JPanel jpn = new JPanel();
jpn.add(new JLabel("头像"));
jl= new JLabel(getImgIcon("0"));//指定默认的头像为第0个
jpn.add(jl);
add(jpn,BorderLayout.NORTH);

JPanel jpc = new JPanel();
for (int i = 0; i <6; i++) { //准备的图片就6张
JButton jb = new JButton();
jb.setIcon(getImgIcon(i+""));
jb.addActionListener(this);
jb.setActionCommand(""+i);
jpc.add(jb);
}
add(jpc,BorderLayout.CENTER);
setTitle("程序");// 窗口标题
setSize(900, 320);// 窗口大小 宽900 高320
setLocationRelativeTo(null);// 窗口居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 当窗口关闭时,程序结束
}

public static void main(String[] args) {
new MyFrame().setVisible(true);
}

@Override
public void actionPerformed(ActionEvent e) {
//方法一:根据按钮顺序,获取图片,然后显示 ,也适合选择的图片是缩略图,显示的时候大图的情况,大图小图可以按照同一顺序排列...
// String cmd = e.getActionCommand();
// jl.setIcon(getImgIcon(cmd));
//方法二: 获取按钮上的图片,然后显示 .适合按钮图片和显示头像,都是同样大小的情况
JButton jb = (JButton) e.getSource();
jl.setIcon(jb.getIcon());

}


public ImageIcon getImgIcon(String index) {//根据图片顺序,获取图标
return new ImageIcon(this.getClass().getResource("/img/"+index+".jpg"));
}
}
更多追问追答
追问
这个界面怎么实现,我实现的太丑了,而且背景颜色是白色的

xdyuan33333
2018-01-01 · 超过78用户采纳过TA的回答
知道小有建树答主
回答量:164
采纳率:70%
帮助的人:72.7万
展开全部
label.setIcon(button.getIcon())
追问
怎样知道点击的是哪个button啊
追答
那么多按钮,我猜不是一个一个建的吧,然后你可以另写一个方法把那些按钮进去做参数啊,
在这个方法里写事件。写一个小例子,你看下。

import java.awt.BorderLayout;
import java.awt.Image;
import java.awt.event.*;
import javax.swing.*;

public class 图片 extends JFrame{
public static void main(String[] args) {
new 图片().setVisible(true);
}
JLabel jl=null;
public 图片() {
setSize(400,400);
setLocationRelativeTo(null);
setDefaultCloseOperation(3);

ImageIcon icon=new ImageIcon(图片.class.getResource("1.png"));
ImageIcon icon2=new ImageIcon(图片.class.getResource("2.png"));
JButton jb1=new JButton("1");
JButton jb2=new JButton("2");

add(jb1,BorderLayout.NORTH);
add(jb2,BorderLayout.SOUTH);
jb1.setIcon(icon);
jb2.setIcon(icon2);

chooseImage(jb1);
chooseImage(jb2);

jl=new JLabel();
add(jl);

}
public void chooseImage(JButton button) {
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
jl.setIcon(button.getIcon());
}
});
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式