今天星期五,参加培训的第十五天,一如往常,早上来了本想把斗地主的判断合法做出来,但是的确是很难,所以就没有做,然后找了如何让背景图片随窗体变化,找到一个好方法,重写JPanel,代码如下:
package swingtest;
import javax.swing.JPanel;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.Image;
public class CustomImgPanel extends JPanel{
private int width = 0;
private int height = 0;
private String imgPath = "src/image/他的妃.jpg";
/**
*
* @param _width 整型,窗口的宽度
* @param _height 整型,窗口的高度
* @param _imgPath 图片的URL,可用相对路径
*/
public CustomImgPanel(int _width,int _height,String _imgPath){
width = _width;
height = _height;
imgPath = _imgPath;
setSize(width,height);
setVisible(true);
}
/**
*
* @param _width 浮点型,窗口的宽度
* @param _height 浮点型,窗口的高度
* @param _imgPath 字符串,图片的URL,可用相对
*/
public CustomImgPanel(double _width,double _height,String _imgPath){
width = (int)_width;
height = (int)_height;
imgPath = _imgPath;
setSize(width,height);
setVisible(true);
}
@Override
public void paintComponent(Graphics gs) {
Graphics2D g = (Graphics2D) gs;
super.paintComponent(g);
//画背景图片
// Image image = Toolkit.getDefaultToolkit().getImage(getClass().getResource(imgPath));
// Image image = Toolkit.getDefaultToolkit().createImage(imgPath);
Image image = Toolkit.getDefaultToolkit().getImage(imgPath);
g.drawImage(image, 0, 0,width,height, this);
}
}
调用方法:
double panelWidth = Toolkit.getDefaultToolkit().getScreenSize().getWidth();
double panelHeight = Toolkit.getDefaultToolkit().getScreenSize().getHeight() - 25 - 25 - 20;//(两个25是内外两个窗口标题栏的高度,20是底部更新进度栏的高度)
imgPanel = new CustomImgPanel(panelWidth,panelHeight,"src/image/他的妃.jpg");
frame.add(imgPanel,-1);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
frame.addComponentListener(new ComponentAdapter() {
public void componentResized(java.awt.event.ComponentEvent evt) {
frame.formComponentResized(evt); }
private void formComponentResized(java.awt.event.ComponentEvent evt) {
// TODO add your handling code here:
try{
this.remove(imgPanel);
}catch(Exception e){
}
// imgPanel = null;
Dimension newSize = evt.getComponent().getSize();
imgPanel = new CustomImgPanel(newSize.getWidth(),newSize.getHeight()-70,"src/image/他的妃.jpg");
this.add(imgPanel,-1);
}
感觉还不错,今天讲的什么来,不太记的了,有一点吧,比如,抽象类,接口,接口可以继承接口,多态的动态绑定,还有范型,clone方法,还有别的什么的确是想不起来了 Stringbuffer是线程安全的,数组和集合的转换,:
numList=new ArrayList(Arrays.asList(num));//数组转化为集合
Integer[] num1= {};
num1 =numList.toArray(num1);//集合转化为数组
日历的创建方法:
Calendar c =Calendar.getInstance();
Calendar c1 = new GregorianCalendar();
大数计算:
biginteger和bigdecimal类,add+subtract*multiple/divide-
至于别的什么,就知道了,应该也没有别的什么了,好吧,就先这样了,反正也没有别的什么好说的,嗯,是这样的,那就先这样了,好的,结束。