摘要:java的JPanel增加图形背景paint,paintComponent方法的重写,new ImageIcon(reguser.class.getResource(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"background.jpg得到图片路径。以下是我们为大家整理的,相信大家阅读完后肯定有了自己的选择吧。
import javax.swing.*; import java.awt.*; //创建一个类继承画板类 class MyJPanel extends JPanel { // 构造方法初始化背景图片 private Image image; public MyJPanel(Image image) { this.image = image; } // 重写paintComponent方法 @Override public void paintComponent(Graphics g) { // 调用父类paintComponent方法绘制其他组件 super.paintComponent(g); // 绘制背景图片,大小为窗体大小 g.drawImage(image, 0, 0, getWidth(), getHeight(), null); } } //测试类 public class Demo1 { // 创建窗体 private JFrame myJFrame = new JFrame("有背景图片"); public Demo1() { // 获取图片 Image im = new ImageIcon("tank.jpg").getImage(); // 设置窗体大小 myJFrame.setSize(889, 500); // 获取设置背景后的面板 MyJPanel myJPanel = new MyJPanel(im); // 添加按钮测试 JButton hello1 = new JButton("hello1"); JButton hello = new JButton("hello"); myJPanel.add(hello); myJPanel.add(hello1); // 获取一个图片 ImageIcon pic = new ImageIcon("tank.jpg"); // 设置图片的大小 pic.setImage(pic.getImage().getScaledInstance(20, 20, 0)); // 把图片放到按钮上 hello1.setIcon(pic); hello1.setOpaque(false); // 去掉背景点击效果 hello1.setContentAreaFilled(false); // 去掉聚焦线 hello1.setFocusPainted(false); // 去掉边框 // hello1.setBorder(null); myJFrame.add(myJPanel); myJFrame.setLocationRelativeTo(null); myJFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); myJFrame.setVisible(true); } public static void main(String[] args) { new Demo1(); } }