
正文
java代码显示图片 java输出图片
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
有大神说一下Java这种组合框显示图片具体的代码,谢谢了
效果图如下
swing和awt写法差别不大,我使用的是swing的组件
参考代码和注释如下
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//本窗口继承自JFrame 实现了 ActionListener接口
public class JCBFrame extends JFrame implements ItemListener{
JComboBoxString jcb;
JLabel jlimg;
// 文字
String[] ss = {"樱桃","香蕉","西瓜"};
//文字对应图片位置
String[] icons = {"img/1.jpg","img/2.jpg","img/3.jpg"};
int init = 2;//初始选择的下标--西瓜
public JCBFrame() {
jcb = new JComboBoxString(ss);
jcb.setSelectedIndex(init);//初始选择的项目
jcb.addItemListener(this);//设置条目事件响应 ,比如选中某个条目的处理
add(jcb,BorderLayout.NORTH);
jlimg = new JLabel();
jlimg.setHorizontalAlignment(JLabel.CENTER);
add(jlimg);
showImg(init);//初始显示的图片
//窗口属性的设置
setTitle("测试窗口");//标题
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(260, 300);//大小
setLocationRelativeTo(null);//居中
}
//显示图片
private void showImg(int index) {
jlimg.setIcon( new ImageIcon(this.getClass().getResource(icons[index])));
}
//main方法
public static void main(String[] args) {
new JCBFrame().setVisible(true);//实例化并可见
}
@Override
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange()==ItemEvent.SELECTED) {//当选择某个条目时
showImg(jcb.getSelectedIndex());//显示的图片改变
}
}
}
相关问答
Q1: 怎么运用java点击一下按钮,随机出现一个图片
随机出现图片, 其实可以转换成一个随机数字的问题. 把图片存入一个数字, 那么只要随机的数字在图片数组的长度范围内即可. 稍微完善的地方就是要确保每次的下标,不要和上一次的相同,否则点击按钮就不会出现换图的效果了.
效果图
参考代码
import java.awt.*;
import javax.swing.*;
//java8测试通过
public class DemoFrame extends JFrame {
JButton jbChange;
JLabel jlImg;
static final ImageIcon IMG1 = new ImageIcon(
Toolkit.getDefaultToolkit().createImage(DemoFrame.class.getResource("/img/1.jpg")));
static final ImageIcon IMG2 = new ImageIcon(
Toolkit.getDefaultToolkit().createImage(DemoFrame.class.getResource("/img/2.jpg")));
static final ImageIcon IMG3 = new ImageIcon(
Toolkit.getDefaultToolkit().createImage(DemoFrame.class.getResource("/img/3.jpg")));
static final ImageIcon IMG4 = new ImageIcon(
Toolkit.getDefaultToolkit().createImage(DemoFrame.class.getResource("/img/4.jpg")));
static final ImageIcon[] IMGS = { IMG1, IMG2, IMG3, IMG4 };
int nowIndex;//用于记录现在的下标
public DemoFrame() {
JPanel jps = new JPanel();
jbChange = new JButton("换图");
jps.add(jbChange);
add(jps, BorderLayout.SOUTH);
JPanel jpc = new JPanel();
jlImg = new JLabel();
nowIndex=getRandomIndex();
jlImg.setIcon(IMGS[nowIndex]);
jpc.add(jlImg);
add(jpc);
setSize(272, 390);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setTitle("随机换图");
//按钮点击事件
jbChange.addActionListener(e - {
int temp=getRandomIndex();//随机产生一个下标
while(temp==nowIndex) {//如果这个下标和现在的下标一直,那么就换一个
temp=getRandomIndex();
}
nowIndex=temp;//更新现在的下标
jlImg.setIcon(IMGS[nowIndex]);//把JLabel的图片换掉
});
}
//产生随机下标
private int getRandomIndex() {
return (int) (Math.random()*IMGS.length);
}
public static void main(String[] args) {
EventQueue.invokeLater(() - new DemoFrame().setVisible(true));
}
}
Q2: Java对话框上显示图片
其实有很多种方法可以解决图片显示大小的问题:
使用photoshop修改. 优点是可以节省系统资源, 显示图片的时候,不用做处理,缺点是需要了解ps的基本操作
使用JDialog 自定义对话框. 优点 可以实现复杂的效果, 缺点,代码量比较多
使用ImageIcon, Image 类 实现图片的缩放,. 优点: 纯java代码解决, 缺点: 如果大量的图片需要缩放, 那么可能影响程序的速度.
方案3的代码如下
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
public class Test {
public static void main(String[] args) {
ImageIcon icon = new ImageIcon("imgs/1.png"); // 得到icon对象 .注意我的图片地址和你的不一样,注意修改!!
Image image = icon.getImage(); //icon---Image
float scale = 0.5f; //缩放比例 50%
int width = Math.round(icon.getIconWidth()*scale); // 变小 50%的宽
int height= Math.round(icon.getIconHeight()*scale);// 变小50%的高
Image miniIcon = image.getScaledInstance(width, height, Image.SCALE_SMOOTH);
// image 变成指定大小. 缩放模式为 SCALE_SMOOTH(平滑优先)
ImageIcon smallIcon = new ImageIcon(miniIcon);// Image---icon
JOptionPane.showInputDialog(null, "吃了吗?", "标题", 0, smallIcon, null, "默认值");
}
}
效果图
图1 图片显示比例为原图的50%
图2 图片显示比例为原图的120%
关于java代码显示图片和java输出图片的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





