这个程序目前只实现了无论点哪个按钮都出现一张图片,怎么才能每点一个按钮都会对应出现一幅照片,??不是三个按钮的图片都相同..
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;
}
解决方案 »
- 大量数据的排序问题,新手请教
- java3d调用了VRML文件在eclipse上能运行,但在浏览器上运行出错,WHY?
- 类型转换
- 菜鸟求助 PKU 1002 runtime error 什么情况啊!!
- java一个很奇怪的问题!
- 可以升级的SQL Server 2000
- 求MAP使用例子
- 怎么样让自己的窗口在其他程序的前面,让自己的窗口在最前面,非常急急
- 有没有人知道JBUILDER7的序列号
- 我刚过SCJP,请各位神仙指条明路(有建意就一定有分:))
- 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中的图片,然后在现实你按钮的那个图片.