, .
1. JLabel.
, , , , JLabel .
JLabel setIcon(Icon image).
JLabel JLabel(String text, Icon icon, int horizontalAlignment).
package javapicture1;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class JavaPicture
{
private static JLabel jLabel;
public static void main(String[] argv)
{
// JLabel.
jLabel = new JLabel();
// .
jLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
//
jLabel.setVerticalAlignment(javax.swing.SwingConstants.TOP);
// .
jLabel.setIcon(new ImageIcon(("D:\\ashesandsnow.jpg")));
//
jLabel.setText(" .");
// .
JFrame f = new JFrame("Picture");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(jLabel);
f.setSize(550,350);
f.setLocation(200,200);
f.setVisible(true);
}
}
, , gif .
2. JPanel.
( PicturePanel) JPanel. setImageFile(File imageFile), JPanel.
public void setImageFile(File imageFile)
{
Try
{
if (imageFile == null)
{
originalImage = null;
}
// .
BufferedImage bi = ImageIO.read(imageFile);
originalImage = bi;
}
catch (IOException ex)
{
// , .
System.err.println(" !");
ex.printStackTrace();
}
// .
repaint();
}
, , , .
// - .
private void formComponentResized(java.awt.event.ComponentEvent evt)
{
int w = this.getWidth();
int h = this.getHeight();
if ((originalImage!= null) && (w > 0) && (h > 0))
{
image = originalImage.getScaledInstance(w, h, Image.SCALE_DEFAULT);
this.repaint();
}
}
- .
package javapicture2;
import java.awt.Graphics;
|
|
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class JavaPicture
{
private static JLabel jLabel;
public static void main(String[] argv)
{
// PicturePanel.
PicturePanel picturePanel = new PicturePanel();
// .
picturePanel.setImageFile(new File("D:\\ashesandsnow.jpg"));
// .
JFrame f = new JFrame("Picture");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(picturePanel);
f.setSize(550,350);
f.setLocation(200,200);
f.setVisible(true);
}
}
class PicturePanel extends JPanel
{
// 2 : .
//
.
// .
private BufferedImage originalImage = null;
private Image image = null;
public PicturePanel()
{
initComponents();
}
private void initComponents()
{
addComponentListener(new java.awt.event.ComponentAdapter()
{
public void componentResized(java.awt.event.ComponentEvent evt)
{
formComponentResized(evt);
}
});
}
// - .
private void formComponentResized(java.awt.event.ComponentEvent evt)
{
int w = this.getWidth();
int h = this.getHeight();
if ((originalImage!= null) && (w > 0) && (h > 0))
{
image = originalImage.getScaledInstance(w, h, Image.SCALE_DEFAULT);
this.repaint();
}
}
@Override
public void paint(Graphics g)
{
super.paint(g);
/ .
if (image!= null)
{
g.drawImage(image, 0, 0, null);
}
// .
super.paintChildren(g);
super.paintBorder(g);
}
public BufferedImage getImage()
{
return originalImage;
}
public void setImage(BufferedImage image)
{
this.image = image;
}
public void setImageFile(File imageFile)
{
try
{
if (imageFile == null)
{
originalImage = null;
}
// .
BufferedImage bi = ImageIO.read(imageFile);
originalImage = bi;
}
catch (IOException ex)
{
// , .
System.err.println(" !");
ex.printStackTrace();
}
// .
repaint();
}
}
.
( GUI) PicturePanel, .. -, .
3. Image.
, Image, drawImage() Graphics paint() JFrame.
package javapicture3;
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.JFrame;
public class JavaPicture extends JFrame
{
|
|
public static void main(String[] args)
{
JavaPicture f = new JavaPicture();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(460,370);
f.setLocation(200,100);
f.setVisible(true);
}
@Override
public void paint(Graphics gr)
{
super.paint(gr);
Image img = getToolkit().getImage("D:\\ashesandsnow.png");
gr.drawImage(img,30,50,this);
}
}
, Image :
CropImageFilter (int x, int , int w, int h) , ;
RGBimageFilter ; , filterRGBO;
RepicateScaieFilter (int w, int h) , / ;
AreaAveragingScaleFilter (int w, int h) ;
- -, ImageProducer FilteredlmageSource. , producer, filter - imageFilter .