WEB开发网
开发学院WEB开发Jsp 一个浏览图片程序 阅读

一个浏览图片程序

 2008-01-05 08:37:13 来源:WEB开发网   
核心提示:import javax.swing.*; import java.awt.Graphics; import java.awt.*; import java.awt.event.*; public class ImageViewer extends JFrame{ Image imageFirst;//初始图像 Ima

import javax.swing.*; 
import java.awt.Graphics; 
import java.awt.*; 
import java.awt.event.*; 

public class ImageViewer extends JFrame{ 

Image imageFirst;//初始图像 
ImagePanel panel=new ImagePanel();//用来显示图像的panel 

JMenuBar jmb=new JMenuBar(); 

JMenu file=new JMenu("File"); 
JMenu modify=new JMenu("Modify"); 

JMenuItem open=new JMenuItem("open"); 
JMenuItem exit=new JMenuItem("exit"); 

ButtonGroup bg=new ButtonGroup(); 
JRadioButtonMenuItem rate1=new JRadioButtonMenuItem("to 50%");//这三个菜单项 
JRadioButtonMenuItem rate2=new JRadioButtonMenuItem("to 100%");//用来改变图像 
JRadioButtonMenuItem rate3=new JRadioButtonMenuItem("to 200%");//显示的大小 

JToolBar toolbar=new JToolBar();//只有一个button简单的toolbar 
JButton button=new JButton("A JToolBar Contain A Jbutton"); 

ImageViewer(){ 

this.getContentPane().setLayout(null); 

this.setBounds(200,200,500,400); 
this.setResizable(false); 
this.setTitle("ImageViewer"); 

imageFirst=java.awt.Toolkit.getDefaultToolkit().getImage("images/opean.gif"); 
panel.setImage(imageFirst); 

jmb.add(file); 
jmb.add(modify); 

open.addActionListener(new OpenAction()); 
file.add(open); 
file.add(exit); 

bg.add(rate1); bg.add(rate2); bg.add(rate3); 
modify.add(rate1); 
modify.add(rate2); rate2.setSelected(true); 
modify.add(rate3); 

rate1.addItemListener(new ItemListener(){ 
public void itemStateChanged(ItemEvent e){ 
if(rate1.isSelected()==true){ 
panel.setRate(0.5); 
System.out.PRintln("rate1 been selected!"); 
panel.repaint(); 


}); 

rate2.addItemListener(new ItemListener(){ 
public void itemStateChanged(ItemEvent e){ 
if(rate2.isSelected()==true){ 
panel.setRate(1); 
System.out.println("rate2 been selected!"); 
panel.repaint(); 


}); 

rate3.addItemListener(new ItemListener(){ 
public void itemStateChanged(ItemEvent e){ 
if(rate3.isSelected()==true){ 
panel.setRate(2); 
System.out.println("rate3 been selected!"); 
panel.repaint(); 


}); 
exit.addActionListener(new ActionListener(){ 
public void actionPerformed(ActionEvent e){ 
System.exit(0); 
}}); 

this.setJMenuBar(jmb); 

panel.setBounds(0,30,this.getWidth(),this.getHeight()-60); 
this.getContentPane().add(panel); 

button.addActionListener(new ActionListener(){ 
public void actionPerformed(ActionEvent e){ 
JOptionPane.showMessageDialog(null,this); 

}); 
toolbar.add(button); 
toolbar.setLayout(new GridLayout()); 
toolbar.setBackground(Color.blue); 
toolbar.setBounds(0,0,500,30); 
this.getContentPane().add(toolbar); 
}//SwingDemo1 

//主方法 
public static void main(String argv[]){ 

JFrame.setDefaultLookAndFeelDecorated(true); 
ImageViewer app=new ImageViewer(); 
app.setVisible(true); 

app.repaint(); 


//内部类 菜单项opean处理事件 
class OpenAction implements ActionListener{ 
public void actionPerformed(ActionEvent e){ 

JFileChooser fc = new JFileChooser(); 
int returnVal = fc.showDialog(new ImageViewer(), "Open file"); 
String file = fc.getSelectedFile().getPath(); 
panel.setImage(file); 
panel.repaint(); 

System.out.println("open file action performed"); 





//外部类  Panel用来显示image 
class ImagePanel extends JPanel 

private Image image; 
private double rate=1; 

Dimension offDimension; 
Image offImage; 
Graphics offGraphics; 

ImagePanel(){ 
this.setBackground(Color.blue); 


public void update(Graphics g){ 
if(image!=null){ 
g.drawImage(image,0,0, 
(int)(this.getWidth()*rate/2),(int)(this.getHeight()*rate/2), 
this.getRootPane()); 

else 
{g.setColor(Color.red); 
g.fillRect(0,0,(int)(250*rate),(int)(200*rate)); 


public void paint(Graphics g){ 
update(g); 


public void setImage(Image image){ 
this.image=image; 


public void setRate(double rate){ 
this.rate=rate; 


public void setImage(String s){ 
this.image=java.awt.Toolkit.getDefaultToolkit().getImage(s); 


Tags:一个 浏览 图片

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接