成都创新互联网站制作重庆分公司

java代码显示图片 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());//显示的图片改变

}

}

}

Java 面板上显示图片的语句怎么写,最好举个例子...

第一种方法:用JLabel显示图片,此种方法图片是一个UI控件,通过布局管理器可放在面板的任意位置,一般用于较小的图标显示,图片上不能再放置其它控件。

第二种方法:在JPanel面板容器中将图片绘制出来,可通过绘制坐标将图片显示在面板的任意位置,一般用于背景图,图片本身不是UI控件,因此图片上还可以放置其它控件。

例子:

package net.miqiang.gui;

import java.awt.Graphics;

import java.awt.Image;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

/**

* Java面板中显示图片的两种常用方法

* @FileName: TestMain.java

* @Author: 米强 转载请保留作者与出处

* @Blog:

* @Blog:

*/

@SuppressWarnings("serial")

public class TestMain extends JFrame {

public TestMain() {

super("显示图片的两种方法");

// JPanel面板容器,放置或绘制图片用

JPanel pane = null;

// 获取一个Image图片对象,使用final修饰为了第二种方法的匿名类可以使用

final Image image = getToolkit().getImage("C:\\face.jpg");

{

// 将第二种方法的代码块全部注释掉,可看到第一种方法显示的图片

// 第一种方法:用JLabel显示图片,此种方法图片是一个UI控件,通过布局管理器可放在面板的任意位置,一般用于较小的图标显示,图片上不能再放置其它控件。

// 通过图片构造一个标签对象

JLabel label = new JLabel(new ImageIcon(image));

// 构造JPanel面板

pane = new JPanel();

// 将标签添加进面板容器

pane.add(label);

}

/*

{

// 将第一种方法的代码块全部注释掉

// 第二种方法:在JPanel面板容器中将图片绘制出来,可通过绘制坐标将图片显示在面板的任意位置,一般用于背景图,图片本身不是UI控件,因此图片上还可以放置其它控件。

// 构造面板对象,由于要重写其中的paintComponent方法,这里使用匿名类,相当于继承了JPanel对象

pane = new JPanel(){

// 重写面板的绘制方法

@Override

protected void paintComponent(Graphics g) {

// 调用父类的paintComponent方法

super.paintComponent(g);

// 使用Graphics绘制图片

g.drawImage(image, 0, 0, this);

}

};

// 随便添加一个按钮控件,该按钮可以显示在图片上方,第一种方法则无法办到。

pane.add(new JButton("按钮可以出现在图片上"));

}

*/

// 将面板添加进窗体的ContentPane中

getContentPane().add(pane);

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(500, 400);

setLocationRelativeTo(null);

setVisible(true);

}

public static void main(String[] args) {

new TestMain();

}

}

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图片显示代码

不是很明白,

类似于启动界面的么?

import javax.swing.*;

import java.awt.*;

import java.net.*;

public class JSplashWindow extends JWindow implements Runnable

{

Thread splashThread=null;

public JSplashWindow()

{

setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//设置启动界面的光标样式

JPanel splash=new JPanel(new BorderLayout());

URL url=getClass().getResource("1.jpg");//获得指定资源文件的绝对路径。

if(url!=null)

{

splash.add(new JLabel(new ImageIcon(url)),BorderLayout.CENTER);

}

setContentPane(splash);

Dimension screen=Toolkit.getDefaultToolkit().getScreenSize();//获得屏幕的大小

pack();

setLocation((screen.width-getSize().width)/2,(screen.height-getSize().height)/2);//使启动窗口居中显示

start();

}

public void start()

{

toFront();//window类的toFront()方法可以让启动界面显示的时候暂时在最前面,用window类的setAlwayOnTop(boolean)方法可以让窗口总保持在最前面。

splashThread=new Thread(this);

splashThread.start();

}

public void run()

{

try

{

setVisible(true);

Thread.sleep(50000);

}

catch(Exception e)

{

e.printStackTrace();

}

dispose();

}

static void showFrame(String title)

{

JFrame frame=new JFrame(title);

frame.setSize(400,300);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

Dimension screenSize=frame.getToolkit().getScreenSize();//获得屏幕的大小

Dimension frameSize=frame.getSize();

if(frameSize.heightscreenSize.height)

{

frameSize.height=screenSize.height;

}

if(frameSize.widthscreenSize.width)

{

frameSize.width=screenSize.width;

}

frame.setLocation((screenSize.width-frameSize.width)/2,(screenSize.height-frameSize.height)/2);

frame.setVisible(true);

}

public static void main(String[] args)

{

showFrame("Demo splash window");

JSplashWindow splash=new JSplashWindow();

//splash.start();

}

}

/*getToolkit()方法是java.awt.window类的方法它可以得到一个Toolkit类。Toolkit对象的getScreenSize()方法可以得到屏幕的大小。

getScreenSize()方法返回一个 Dimension对象,它的width,height属性就是屏幕的宽和高。

Object getClass()方法是java.lang.Object类的方法它可以获得当前正在运行类的对象

URL getResource(String name)方法是java.lang.Class类的方法用此方法可以获得一个指定资源文件的绝对路径。*/


文章标题:java代码显示图片 java显示图案java
网页路径:http://cxhlcq.com/article/hpohcp.html

其他资讯

在线咨询

微信咨询

电话咨询

028-86922220(工作日)

18980820575(7×24)

提交需求

返回顶部