下面贴上全部的代码:package ui.mainUi;import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import ui.mainUi.mainPanel;
import javax.swing.*;import com.sun.awt.AWTUtilities;public class mainFrame extends JFrame {
public static int WIDETH = 500;
public static int HEIGHT= 800;
private static final Image image = Toolkit.getDefaultToolkit().getImage(
"E:\\yangwei's home\\java\\Application\\Application\\player\\img\\skin6.gif"); //播放器主体结构
public mainFrame() {
setTitle("MyPlayer");
setSize(WIDETH,HEIGHT);
doLay();
mainPanel controlPanel=new mainPanel();
setLayout(new BorderLayout());
add(controlPanel,BorderLayout.CENTER);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} //加载播放器的背景
private static final JComponent canvas = new JComponent() {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics gBackground = g.create();
gBackground.drawImage(image, 0, 0, getWidth(), getHeight(), this);
gBackground.dispose();
}
};
//加载背景
private void doLay() {
Container container = getContentPane();
container.add(canvas);
// pack();
setVisible(true);
}
}package ui.mainUi;import javax.swing.JButton;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.*;public class mainPanel extends JPanel
{
private JMenuBar mainMenu;
private mainPanel lyricsPanel;
private JButton pauseButton;
private JButton playerButton;
private JButton nextone;
private JButton previousone;
mainPanel()
{
nextone = new Button(
"E:\\yangwei's home\\java\\Application\\Application\\player\\img\\fastForward.png");
nextone.setBounds(new Rectangle(165,55,40,30));
playerButton=new Button("E:\\yangwei's home\\java\\Application\\Application\\player\\img\\play.png");
playerButton.setBounds(210,55,40,30);
previousone = new Button("E:\\yangwei's home\\java\\Application\\Application\\player\\img\\rewind.png");
previousone.setBounds(255,55,40,30);
setLayout(null);
add(previousone,null);
add(playerButton,null);
add(nextone,null);
JSlider VolumeControl=new JSlider();
VolumeControl.setBounds(275, 55, 40, 30);
VolumeControl.setPaintLabels(true);
add(VolumeControl);
setVisible(true);
}
}麻烦帮忙看下
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import ui.mainUi.mainPanel;
import javax.swing.*;import com.sun.awt.AWTUtilities;public class mainFrame extends JFrame {
public static int WIDETH = 500;
public static int HEIGHT= 800;
private static final Image image = Toolkit.getDefaultToolkit().getImage(
"E:\\yangwei's home\\java\\Application\\Application\\player\\img\\skin6.gif"); //播放器主体结构
public mainFrame() {
setTitle("MyPlayer");
setSize(WIDETH,HEIGHT);
doLay();
mainPanel controlPanel=new mainPanel();
setLayout(new BorderLayout());
add(controlPanel,BorderLayout.CENTER);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} //加载播放器的背景
private static final JComponent canvas = new JComponent() {
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics gBackground = g.create();
gBackground.drawImage(image, 0, 0, getWidth(), getHeight(), this);
gBackground.dispose();
}
};
//加载背景
private void doLay() {
Container container = getContentPane();
container.add(canvas);
// pack();
setVisible(true);
}
}package ui.mainUi;import javax.swing.JButton;
import javax.swing.JMenuBar;
import javax.swing.JPanel;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.*;public class mainPanel extends JPanel
{
private JMenuBar mainMenu;
private mainPanel lyricsPanel;
private JButton pauseButton;
private JButton playerButton;
private JButton nextone;
private JButton previousone;
mainPanel()
{
nextone = new Button(
"E:\\yangwei's home\\java\\Application\\Application\\player\\img\\fastForward.png");
nextone.setBounds(new Rectangle(165,55,40,30));
playerButton=new Button("E:\\yangwei's home\\java\\Application\\Application\\player\\img\\play.png");
playerButton.setBounds(210,55,40,30);
previousone = new Button("E:\\yangwei's home\\java\\Application\\Application\\player\\img\\rewind.png");
previousone.setBounds(255,55,40,30);
setLayout(null);
add(previousone,null);
add(playerButton,null);
add(nextone,null);
JSlider VolumeControl=new JSlider();
VolumeControl.setBounds(275, 55, 40, 30);
VolumeControl.setPaintLabels(true);
add(VolumeControl);
setVisible(true);
}
}麻烦帮忙看下
private JButton previousone;
previousone = new Button("E:\\yangwei's home\\java\\Application\\Application\\player\\img\\rewind.png");这个不知道是怎么编译过去的
private MainPanel lyricsPanel;
private JButton pauseButton;
private JButton playerButton;
private JButton nextone;
private JButton previousone; private static final Image image = Toolkit.getDefaultToolkit().getImage(
"images/Cat.gif"); // 加载播放器的背景
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics gBackground = g.create();
gBackground.drawImage(image, 0, 0, getWidth(), getHeight(), this);
gBackground.dispose();
} MainPanel() {
nextone = new JButton(
"E:\\yangwei's home\\java\\Application\\Application\\player\\img\\fastForward.png");
nextone.setBounds(new Rectangle(165, 55, 40, 30));
playerButton = new JButton(
"E:\\yangwei's home\\java\\Application\\Application\\player\\img\\play.png");
playerButton.setBounds(210, 55, 40, 30);
previousone = new JButton(
"E:\\yangwei's home\\java\\Application\\Application\\player\\img\\rewind.png");
previousone.setBounds(255, 55, 40, 30);
setLayout(null);
add(previousone, null);
add(playerButton, null);
add(nextone, null);
// JSlider VolumeControl = new JSlider();
// VolumeControl.setBounds(275, 55, 40, 30);
// VolumeControl.setPaintLabels(true);
// add(VolumeControl);
setVisible(true);
}}
首先谢谢,用了你的方法之后问题确实是解决了,
但是能否请你详细解释一下呢?我原来的哪种方法错在哪里?是那个component 挡住了那些个button?
但如果改在MainPanel中,让Panel自己绘背景,则绘完后Panel自动重绘它自己的组件(你的按钮),因而问题就解决了。
这样是可以了,但是出现了一个新的问题 我在button上加的那些图片不能显示了。