教育路上
摘要:java的JPanel增加圖形背景paint,paintComponent方法的重寫,new ImageIcon(reguser.class.getResource(\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"background.jpg得到圖片路徑。以下是我們為大家整理的,相信大家閱讀完后肯定有了自己的選擇吧。
2022-07-07 19:14網絡推薦
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(); } }
訪客的評論 2023/05/28 23:43
文中描述的是準確的嗎,如何報名!