怎样在java中的按钮JButton上加图片
哪位java高手帮我看看这个程序在编译时一切显示正常,但为什么没有显示也没有声音播放?importjava.awt.*;importjavax.swing.*;impor...
哪位java高手帮我看看这个程序在编译时一切显示正常,但为什么没有显示也没有声音播放?
import java.awt.*;
import javax.swing.*;
import java.applet.*;
import java.awt.event.ActionListener;
import java.util.EventListener;
import java.awt.event.ActionEvent;
public class SheJi_1_xc extends JApplet implements ActionListener
{
Container p;
JPanel p1,p2,p3,p4,p5;
JButton b1,b2,b3;
JLabel a;
JButton tp[]=new JButton[10];
AudioClip m;
GridLayout gr;
CardLayout c=new CardLayout(); //设置c为卡片布局
Font f;
public void init()
{
m=getAudioClip(getCodeBase(),"am.wma");
p=getContentPane(); //p获得这个容器
gr=new GridLayout(0,0);
p.setLayout(gr);
p1=new JPanel();p2=new JPanel();p3=new JPanel();
p4=new JPanel();p5=new JPanel();
p1.setBackground(Color.red); //p1板设置成红色背景
a=new JLabel("XXX的相册");
f=new Font("隶书",Font.BOLD,30);
a.setFont(f); //将字体设置给标签a
a.setForeground(Color.blue); //给标签上的字加兰色
p1.add(a); //将标签a贴到p1板子上
b1=new JButton("上一页"); //创建3个按钮
b2=new JButton("下一页");
b3=new JButton("播放声音");
p3.add(b1);p3.add(b2);p3.add(b3);//将3个按钮添加到p3板子上
p2.setLayout(c); //将p2板设置成卡片布局
for(int i=0;i<10;i++)
{
tp[i]=new JButton(new ImageIcon(i+".jpg"));//用循环在10按钮上添加图片
p2.add(String.valueOf(i),tp[i]); //将各个按钮添加到p2板上
}
p.add("North",p1); //将p1放到p容器中的北部
p.add("Center",p2); //将p2放到p容器中的中心
p.add("South",p3); //将p1放到p容器中的南部
b1.addActionListener(this); //对3个按钮加监听
b2.addActionListener(this);
b3.addActionListener(this);
show(); //显示这个容器,对吗?
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1) //如果事件发生在b1上,容器p2在卡片布局中前翻一页
c.previous(p2);
if(e.getSource()==b2) //如果事件发生在b1上,下翻一页
c.next(p2);
if(e.getSource()==b3) //如果事件源是b3按钮则播放声音
m.play();
}
} 展开
import java.awt.*;
import javax.swing.*;
import java.applet.*;
import java.awt.event.ActionListener;
import java.util.EventListener;
import java.awt.event.ActionEvent;
public class SheJi_1_xc extends JApplet implements ActionListener
{
Container p;
JPanel p1,p2,p3,p4,p5;
JButton b1,b2,b3;
JLabel a;
JButton tp[]=new JButton[10];
AudioClip m;
GridLayout gr;
CardLayout c=new CardLayout(); //设置c为卡片布局
Font f;
public void init()
{
m=getAudioClip(getCodeBase(),"am.wma");
p=getContentPane(); //p获得这个容器
gr=new GridLayout(0,0);
p.setLayout(gr);
p1=new JPanel();p2=new JPanel();p3=new JPanel();
p4=new JPanel();p5=new JPanel();
p1.setBackground(Color.red); //p1板设置成红色背景
a=new JLabel("XXX的相册");
f=new Font("隶书",Font.BOLD,30);
a.setFont(f); //将字体设置给标签a
a.setForeground(Color.blue); //给标签上的字加兰色
p1.add(a); //将标签a贴到p1板子上
b1=new JButton("上一页"); //创建3个按钮
b2=new JButton("下一页");
b3=new JButton("播放声音");
p3.add(b1);p3.add(b2);p3.add(b3);//将3个按钮添加到p3板子上
p2.setLayout(c); //将p2板设置成卡片布局
for(int i=0;i<10;i++)
{
tp[i]=new JButton(new ImageIcon(i+".jpg"));//用循环在10按钮上添加图片
p2.add(String.valueOf(i),tp[i]); //将各个按钮添加到p2板上
}
p.add("North",p1); //将p1放到p容器中的北部
p.add("Center",p2); //将p2放到p容器中的中心
p.add("South",p3); //将p1放到p容器中的南部
b1.addActionListener(this); //对3个按钮加监听
b2.addActionListener(this);
b3.addActionListener(this);
show(); //显示这个容器,对吗?
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1) //如果事件发生在b1上,容器p2在卡片布局中前翻一页
c.previous(p2);
if(e.getSource()==b2) //如果事件发生在b1上,下翻一页
c.next(p2);
if(e.getSource()==b3) //如果事件源是b3按钮则播放声音
m.play();
}
} 展开
2个回答
展开全部
JButton有一个setIcon(Icon icon);方法可以在JButton上加图片。例如:
public class ButtonImage
{
public ButtonImage()
{
JFrame frame = new JFrame();
JButton button = new JButton("confirm");
ImageIcon icon = new ImageIcon("image.jpg");
button.setIcon(icon);
frame.add(button);
frame.setLayout(new FlowLayout());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setVisible(true);
}
public static void main(String[] args)
{
new ImageButton();
}
}
可以把iamge.jpg裁剪为合适的大小,效果可能就会很好。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询