日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java 重写paint_java笔记 重写paintComponent方法以实现jPanel加背景

發布時間:2025/3/19 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 重写paint_java笔记 重写paintComponent方法以实现jPanel加背景 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

N年不用java寫圖形界面,但想了想,在點擊事件中給上邊圖形重繪的方法重新來一遍應該可行。代碼如下:

package com.yimik.test.swing;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import javax.swing.ImageIcon;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

public class BackgroundTest extends JFrame{

private static final long serialVersionUID = 1L;

private JButton b;

private JPanel p ;

public BackgroundTest() {

p = new MyPanel();

p.setBounds(0, 0, 500,200);

this.setDefaultCloseOperation(EXIT_ON_CLOSE);

this.setSize(500, 500);

this.setVisible(true);

this.setLayout(null);

this.add(p);

b = new JButton("點擊換背景");

b.setBounds(0, 300, 100, 30);

this.add(b);

b.addMouseListener(new MouseAdapter() {

@Override

public void mouseClicked(MouseEvent e) {

super.mouseClicked(e);

ImageIcon image=new ImageIcon(getClass().getResource("/imgs/img2.jpg"));

image.setImage(image.getImage().getScaledInstance(p.getWidth(),p.getHeight(),Image.SCALE_FAST));

image.paintIcon(p, p.getGraphics(),0, 0);

}

});

}

public static void main(String[] args) {

new BackgroundTest();

}

}

class MyPanel extends JPanel{

private static final long serialVersionUID = 1L;

@Override

protected void paintComponent(Graphics g){//重寫paintComponent方法以實現jPanel加背景

super.paintComponent(g);

ImageIcon image=new ImageIcon(getClass().getResource("/imgs/img1.jpg")); //獲取圖像

image.setImage(image.getImage().getScaledInstance(this.getWidth(),this.getHeight(),Image.SCALE_FAST)); //調整圖像的分辨率以適應容器

image.paintIcon(this, g,0, 0);

}

}

總結

以上是生活随笔為你收集整理的java 重写paint_java笔记 重写paintComponent方法以实现jPanel加背景的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。