JPanel没有直接设置背景图片的方法。如果你想做成有背景的jpanel,需要自己继承JComponent,重载paintComponent,画出设置的壁纸。很简单代码:
问题
很显然这白的颜色太难看了,要去掉就需要这样设置一下:
/setOpaque()/如果为 true,则该组件绘制其边界内的所有像素。
jslider.setOpaque(false);
package com.swing.panel;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
public class Demo extends JFrame {
private boolean isShowing;
private JLabel jlabel;
private JPanelWithPhoto jpanel;
private JButton jbutton1;
private JButton jbutton2;
private JSlider jslider;
private JLabel jlabel2;
private JLabel jlabel3;
public Demo(){
init();
}
public void init(){
isShowing = false ;
jlabel = new JLabel();
jlabel.setForeground(Color.red);
//jlabel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "Tweaking Tooltips", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), java.awt.Color.red));
jlabel.setBorder(BorderFactory.createTitledBorder(BorderFactory.createEtchedBorder(), "good", TitledBorder.DEFAULT_POSITION , TitledBorder.DEFAULT_POSITION , new Font("utg-8", 0, 23), Color.green ));
jlabel.setText("<html>\n<body>\n<center>\n<h2>\nPACIFIC OCEAN\n</h2>\n<p>\n<strong>\n<em>\nIt has been snowing for thousands of years!\n</em>\n</strong>\n</p>\n</center>\n</body>\n</html>");
jbutton1 = new JButton();
jbutton1.setText("begin....");
jbutton1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
if(isShowing == true){
jbutton1.setText("end!!!");
}else{
jbutton1.setText("begin...");
}
}
});
jbutton2 = new JButton();
jbutton2.setText("stop");
jbutton2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.exit(0);
}
});
jslider = new JSlider();
j