zoukankan      html  css  js  c++  java
  • swing桌面四子棋程序开发过程中遇到的一些问题记录(一)

          用swing开发项目时遇到很多问题,之前也没怎么做过swing的项目,遇到的问题也许很低级,但是都得自己一点一点去解决。

          问题(一):设置swing窗体的背景图片的问题,开始以为跟C#中winform是一样的直接设置Background image就可以了,其实不然,网上查了一查如何设置窗体背景的问题,最后我经过自己的实践觉得还是用自定义一个JPanel组件来解决没用JLable组件太过去局限。这里我提出我重写后的JPanel的代码。在设置窗体的背景的时候,将这个类添加到JFrame中,并将此JPanel的宽和高都设置为窗体的高和宽就好了,如果需要在JPanel里面作业,则需要在JPanel里面添加布局。

    package com.wxyztech.control;
    
    import java.awt.Graphics;
    import java.net.URL;
    
    import javax.swing.ImageIcon;
    import javax.swing.JPanel;
    
    @SuppressWarnings("serial")
    public class MImagePanel extends JPanel {
    
    	private ImageIcon imageIcon = null;
    	
    	public ImageIcon getImageIcon() {
    		return imageIcon;
    	}
    	public void setImageIcon(URL imgUrl) {
    		imageIcon = new ImageIcon(imgUrl);
    	}
    	public MImagePanel() {
    		
    	}
    	//构造方法,当我们在实例化JPanel的时候,直接加上背景图片的URL就可以实现背景的效果
    	public MImagePanel(URL imgUrl){
    		imageIcon = new ImageIcon(imgUrl); 
    	}
    	@Override
    	protected void paintComponent(Graphics g) {
    		// TODO 自动生成的方法存根
    		int x = 0, y = 0;
    		//java.net.URL imgURL = getClass().getResource("/bg/bg_default.png");
    		//ImageIcon icon = new ImageIcon(imgURL);
    		g.drawImage(imageIcon.getImage(), x, y, getSize().width, getSize().height, this);
    		super.paintComponent(g);
    	}
    }
    

    在引用的时候下面几行代码就可以了

    URL url = getClass().getResource("/bg/bg_PKing.png");
    		panel = new MImagePanel(url);
    		panel.setBounds(0, 0, frameWidth, frameHeight);
    		panel.setOpaque(false);// 设置当前panel为透明的
    		getContentPane().add(panel);
    		panel.setLayout(null);
    

  • 相关阅读:
    POJ--3164--Command Network【朱刘算法】最小树形图
    金典 SQL笔记(6)
    hdoj1106排序
    linux程序设计——运行SQL语句(第八章)
    iOS-UITextView-文本输入视图的使用
    HDU 5305 Friends(简单DFS)
    Android IntentService全然解析 当Service遇到Handler
    概要设计的要点
    DispatcherTimer
    原型模式
  • 原文地址:https://www.cnblogs.com/deng-c-q/p/5446377.html
Copyright © 2011-2022 走看看