这个程序目前只实现了无论点哪个按钮都出现一张图片,怎么才能每点一个按钮都会对应出现一幅照片,??不是三个按钮的图片都相同..
package tuxing1;import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;
import javax.swing.*;
import java.io.*;
import javax.imageio.*;import com.sun.org.apache.bcel.internal.generic.RETURN;public class ButtonTest
{ public static void main(String[] args)
{
ButtonFrame frame =new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true); }}class ButtonFrame extends JFrame
{
public ButtonFrame()
{
setTitle("ButtonTest");
setSize(400,400);
ButtonPanel panel = new ButtonPanel();
add(panel);
}
}class ButtonPanel extends JPanel
{
public ButtonPanel()
{
JButton yellowButton =new JButton("Yellow");
JButton buleButton =new JButton("Blue");
JButton redButton =new JButton("read");
add(yellowButton);
add(buleButton);
add(redButton);
ColorAction yellowAction = new ColorAction("111");
ColorAction blueAction =new ColorAction("222");
ColorAction redAction =new ColorAction("333");
yellowButton.addActionListener(yellowAction);
buleButton.addActionListener(blueAction);
redButton.addActionListener(redAction);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
}
private class ColorAction implements ActionListener
{
public ColorAction(String s)
{
w=s;
}
public void actionPerformed(ActionEvent event)
{
JFrame frame=new JFrame();
frame.setTitle(w);
frame.setSize(300,200);
frame.setVisible(true);
ImagePanel panel = new ImagePanel();
frame.add(panel);
}
class ImagePanel extends JPanel
{
ImagePanel()
{
try
{
image=ImageIO.read(new File("F:\\照片\\1.jpg"));
}
catch(IOException e)
{
e.printStackTrace();
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(image!=null)
g.drawImage(image, 5, 0, getWidth(), getHeight(), 0, 0,
image.getWidth(null), image.getHeight(null), null);
}
}
}
private String w;
private Image image;
}
package tuxing1;import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;
import javax.swing.*;
import java.io.*;
import javax.imageio.*;import com.sun.org.apache.bcel.internal.generic.RETURN;public class ButtonTest
{ public static void main(String[] args)
{
ButtonFrame frame =new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true); }}class ButtonFrame extends JFrame
{
public ButtonFrame()
{
setTitle("ButtonTest");
setSize(400,400);
ButtonPanel panel = new ButtonPanel();
add(panel);
}
}class ButtonPanel extends JPanel
{
public ButtonPanel()
{
JButton yellowButton =new JButton("Yellow");
JButton buleButton =new JButton("Blue");
JButton redButton =new JButton("read");
add(yellowButton);
add(buleButton);
add(redButton);
ColorAction yellowAction = new ColorAction("111");
ColorAction blueAction =new ColorAction("222");
ColorAction redAction =new ColorAction("333");
yellowButton.addActionListener(yellowAction);
buleButton.addActionListener(blueAction);
redButton.addActionListener(redAction);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
}
private class ColorAction implements ActionListener
{
public ColorAction(String s)
{
w=s;
}
public void actionPerformed(ActionEvent event)
{
JFrame frame=new JFrame();
frame.setTitle(w);
frame.setSize(300,200);
frame.setVisible(true);
ImagePanel panel = new ImagePanel();
frame.add(panel);
}
class ImagePanel extends JPanel
{
ImagePanel()
{
try
{
image=ImageIO.read(new File("F:\\照片\\1.jpg"));
}
catch(IOException e)
{
e.printStackTrace();
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if(image!=null)
g.drawImage(image, 5, 0, getWidth(), getHeight(), 0, 0,
image.getWidth(null), image.getHeight(null), null);
}
}
}
private String w;
private Image image;
}
解决方案 »
- JDBC-ODBC 数据库连接 数据更新问题
- Drools Rule Engine 多线程访问 问题(顶者有分,回帖可看美女图片。)
- 帮忙解决以下程序中的一个错误
- 大家看这个计算题还有什么可以优化的地方不?
- 请教一个thread问题。。。很奇怪。
- 各位前辈 请进!!帮忙修改下 谢谢
- 各位我编的一个JAVA文件在运行的时候出现如下的错误提示,请问是什么原因??
- import 怎么用?
- 跪求:jdk1.5.0如何实现BMP图片的保存?
- 大家又没有看到日历控件方面的帖子?
- SQL Server2000的存储过程如果有2个以上不同的select语句在JAVA中如何得到这几个结果集?
- 关于java blocks构造的问题
import java.awt.event.*;
import java.io.File;
import java.io.IOException;import javax.imageio.ImageIO;
import javax.swing.*;
import java.io.*;
import javax.imageio.*;import com.sun.org.apache.bcel.internal.generic.RETURN;public class ButtonTest
{ public static void main(String[] args)
{
ButtonFrame frame = new ButtonFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}}
class ButtonFrame extends JFrame
{
public ButtonFrame()
{ setTitle("ButtonTest");
setSize(400, 400);
ButtonPanel panel = new ButtonPanel();
add(panel);
}
}
class ButtonPanel extends JPanel
{
public ButtonPanel()
{ JButton yellowButton = new JButton("Yellow");
JButton buleButton = new JButton("Blue");
JButton redButton = new JButton("read");
add(yellowButton);
add(buleButton);
add(redButton);
ColorAction yellowAction = new ColorAction("111");
ColorAction blueAction = new ColorAction("222");
ColorAction redAction = new ColorAction("333");
yellowButton.addActionListener(yellowAction);
buleButton.addActionListener(blueAction);
redButton.addActionListener(redAction);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g); } private class ColorAction implements ActionListener
{
public ColorAction(String s)
{
w = s;
}
public void actionPerformed(ActionEvent event)
{ JFrame frame = new JFrame();
frame.setTitle(w);
frame.setSize(300, 200);
frame.setVisible(true);
ImagePanel panel = new ImagePanel(event.getActionCommand());
frame.add(panel);
} class ImagePanel extends JPanel
{
ImagePanel()
{
image = null;
} ImagePanel(String buttonTag)
{
image = null;
try
{
if (buttonTag == "Yellow")
{
image = ImageIO.read(new File("d:\\1.jpg"));
}
else if (buttonTag == "Blue")
{
image = ImageIO.read(new File("d:\\2.jpg"));
}
else if (buttonTag == "read")
{
image = ImageIO.read(new File("d:\\2.jpg"));
}
}
catch (IOException e)
{
e.printStackTrace();
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
if (image != null)
g.drawImage(image, 5, 0, getWidth(), getHeight(), 0, 0,
image.getWidth(null), image.getHeight(null), null); }
} } private String w;
private Image image;
}
public void actionPerformed(ActionEvent event)
{ JFrame frame=new JFrame();
frame.setTitle(w);
frame.setSize(300,200);
frame.setVisible(true);
ImagePanel panel = new ImagePanel();
frame.add(panel);
}
应该改为:
public void actionPerformed(ActionEvent event)
{
JFrame frame=new JFrame();
frame.setTitle(w);
ImagePanel panel = new ImagePanel();
frame.add(panel); //先把panel放到frame中
frame.setSize(300,200); //再设置frame的属性
frame.setVisible(true);
}
{ JFrame frame=new JFrame();
frame.setTitle(w);
frame.setSize(300,200);
frame.setVisible(true);
ImagePanel panel = new ImagePanel();
frame.add(panel);
} 有几种方式,你把这个类放到 包含button类里,然后判断事件源
if( event.getSource() = redButton) {}else if(..){}else{}
也可以像前面的人说的那样,每个button一个 action类
确实原理不是复杂,
一个按钮做一监听器放一个图片,不哦过在监听器里边触发的时候首先要清空那个lable中的图片,然后在现实你按钮的那个图片.