国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

一個瀏覽圖片程序

2019-11-18 15:19:11
字體:
來源:轉載
供稿:網友

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.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); 



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 辽宁省| 阜宁县| 柏乡县| 虎林市| 静安区| 平陆县| 常山县| 香港| 丰县| 华阴市| 濉溪县| 兴文县| 墨脱县| 卢龙县| 红桥区| 延寿县| 视频| 嘉义市| 军事| 县级市| 犍为县| 拜城县| 衡阳县| 武安市| 无锡市| 长沙县| 珲春市| 龙陵县| 蒙城县| 图木舒克市| 称多县| 桃园市| 忻城县| 万盛区| 涡阳县| 湄潭县| 阜宁县| 宁陵县| 娄烦县| 平潭县| 额尔古纳市|