java图片布局代码 java相关图片

java如何在布局中添加图片作为背景问题,怎么解决简单来说就是重写paint方法 , 然后调用画笔的drawImage这个方法 。
如:
对一个JPanel加入背景图片“bg01.png”,那么就重写paint这个方法如下
在类里
/**
*
背景图片
*/
Image
backgroundImage
=
null;
//这就是重写paint方法
public
void
paint(Graphics
g)
{
loadRecources();
【java图片布局代码 java相关图片】if(backgroundImage
!=
null)
{
g.drawImage(backgroundImage,
0,
0,
this);
}
}
public
void
loadRecources()
{
//载入背景图片
if(backgroundImage
==
null)
{
try
{
backgroundImage
=
ImageIO.read(new
File("resources/Images/bg01.png"));
}
catch
(IOException
e)
{
System.out.println("缺少背景图片");
JOptionPane.showMessageDialog(this,
"找不到背景图片!",
"文件缺失",
JOptionPane.ERROR_MESSAGE);
}
}
}
这里只是写的一个示例代码 , lz看看 , 然后分析下写一个类,然后如此尝试下 , 应该很快就能成功 。
java图形界面的布局没用过SWTjava图片布局代码的人路过,提供一个SWING:
窗口用JFrame(frame) , 布局为BorderLayout.
顶部为JLabel(labelTop),带图片和文字 , 用frame.add(labelTop, BorderLayout.NORTH)加入
左面为JPanel(panelLeft),布局为BoxLayout , 参数Y_AXIS.需要在创建JPanel时设置Layout为NULL,然后再创建BoxLayout时需要把已经建立java图片布局代码的panelLeft作为参数传进去,然后再设置panelLeftjava图片布局代码的Layout为那个BoxLayout 。用frame.add(panelLeft, BorderLayout.WEST)加入
中间为一堆不同功能的JPanel,布局根据功能而定了,在点击按钮时,移除frame此时中间的panel(记录在一个自己的变量panelCenter里),然后加入按钮对应的panel,再把加入的panel存入变量panelCenter.
java卡片布局show的使用 。下面代码中LayoutDemo中“日记本”按钮显示TestFlowLayoutone 代码卡片布局里面,好像只有一个布局 。
另外对象的比较,不可以简单地使用=,要使用对象.equals(object)
代码是精简过的,最大的区别在图片中代码的30几行、60几行 , ,,,,把内部类,放回到外面,一样使用的 。
java 图片缩放代码直接给你一个类,直接套用就好了
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
import java.io.File;
import javax.imageio.ImageIO;
public class Resize {
BufferedImage bufImage;
int width;
int height;
public Resize() {
// TODO Auto-generated constructor stub
}
public Resize(String srcPath,int width,int height) {
this.width = width;
this.height = height;
try{
this.bufImage = ImageIO.read(new File(srcPath));
}catch(Exception e){
e.printStackTrace();
}
}
public static BufferedImage rize(BufferedImage srcBufImage,int width,int height){
BufferedImage bufTarget = null;
double sx = (double) width / srcBufImage.getWidth();
double sy = (double) height / srcBufImage.getHeight();
int type = srcBufImage.getType();
if(type == BufferedImage.TYPE_CUSTOM){
ColorModel cm = srcBufImage.getColorModel();
WritableRaster raster = cm.createCompatibleWritableRaster(width,
height);
boolean alphaPremultiplied = cm.isAlphaPremultiplied();

推荐阅读