注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

山林客

简单不一定幸福,但幸福其实可以很简单。

 
 
 

日志

 
 
关于我

2004年毕业于中山大学,毕业后专注于网站开发和网络工程技术。先后取得SCWCD、CCNP认证,对Asp/Java有丰富的开发经验,对网络工程也有较深的研究。真诚欢迎大家多多指教、多多指点、多多指正,共同分享IT道路和人生道路上的喜怒哀乐。

An ImageViewer(not finished)  

2006-10-09 22:26:51|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
import java.awt.*;
import java.awt.event.*;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;

import javax.swing.*;
import javax.swing.event.*;
import javax.swing.filechooser.FileFilter;



public class MenuTest {

/**
 * @param args
 */
public static void main(String[] args) {
// TODO Auto-generated method stub
MenuFrame frame=new MenuFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}

}
class MenuFrame extends JFrame{
public static final int DEFAULT_WIDTH=400;

public static final int DEFAULT_HEIGHT=300;
private Action saveAction;
private Action saveAsAction;
private JCheckBoxMenuItem readonlyItem;
private JPopupMenu popup;
private JFileChooser chooser=new JFileChooser();
private JLabel label=new JLabel();
private JLabel label2=new JLabel();
private JScrollPane jsp;
private Box b;
private class OpenListener implements ActionListener{
public void actionPerformed(ActionEvent event){
chooser.setCurrentDirectory(new File("."));
int result=chooser.showOpenDialog(MenuFrame.this);
if(result==JFileChooser.APPROVE_OPTION){
String name=chooser.getSelectedFile().getPath();
label.setIcon(new ImageIcon(name));
label2.setText(chooser.getSelectedFile().getName());
}
}
}

private class GifFilter extends FileFilter{
public boolean accept(File f){
return f.getName().toLowerCase().endsWith(".gif")||f.isDirectory();
}
public String getDescription(){
return "GIF(.gif)";
}
}

private class JpgFilter extends FileFilter{
public boolean accept(File f){
return f.getName().toLowerCase().endsWith(".jpg")||f.getName().toLowerCase().endsWith(".jpeg")||f.isDirectory();
}
public String getDescription(){
return "JPG(.jpg|.jpeg)";
}
}

private class JpgGifFilter extends FileFilter{
public boolean accept(File f){
return f.getName().toLowerCase().endsWith(".jpg")||f.getName().toLowerCase().endsWith(".jpeg")||f.getName().toLowerCase().endsWith(".gif")||f.isDirectory();
}
public String getDescription(){
return "Images(.jpg|.jpeg|.gif)";
}
}

private class Previewer extends JLabel{

  public Previewer(JFileChooser chooser){
  setPreferredSize(new Dimension(100,100));
  setBorder(Borde***ctory.createEtchedBorder());
  
  chooser.addPropertyChangeListener(
new PropertyChangeListener(){
public void propertyChange(PropertyChangeEvent event){
if(event.getPropertyName()==JFileChooser.SELECTED_FILE_CHANGED_PROPERTY){
File f=(File)event.getNewValue();
if(f==null){
setIcon(null);
return;
}
ImageIcon icon=new ImageIcon(f.getPath());
if(icon.getIconWidth()>getWidth())
icon=new ImageIcon(icon.getImage().getScaledInstance(getWidth(),-1,Image.SCALE_DEFAULT));
setIcon(icon);
}
}
}
  );
  }

}




public MenuFrame(){
setTitle("MenuTest");
setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);


JMenu fileMenu=new JMenu("File");
JMenuItem newItem=fileMenu.add(new TestAction("New"));

JMenuItem openItem=fileMenu.add(new TestAction("Open"));
openItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
openItem.addActionListener(new OpenListener());
JpgGifFilter jg=new JpgGifFilter();
chooser.setAccessory(new ImagePreviewer(chooser));
chooser.setAcceptAllFileFilterUsed(false);
chooser.setFileFilter(jg);

chooser.addChoosableFileFilter(new GifFilter());
chooser.addChoosableFileFilter(new JpgFilter());
chooser.addChoosableFileFilter(jg);






b=Box.createVerticalBox();
//JPanel panel2=new JPanel();
//panel2.setLayout(new GridLayout(2,1));
b.add(label);
b.add(label2);


//add(b,BorderLayout.CENTER);

jsp=new JScrollPane(b);
add(jsp,BorderLayout.CENTER);







fileMenu.addSeparator();

saveAction=new TestAction("Save");
JMenuItem saveItem=fileMenu.add(saveAction);
saveItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));

saveAsAction=new TestAction("Save As");
JMenuItem saveAsItem=fileMenu.add(saveAsAction);

fileMenu.addSeparator();

fileMenu.add(new
AbstractAction("Exit"){
public void actionPerformed(ActionEvent event){
System.exit(0);
}
}
);

readonlyItem=new JCheckBoxMenuItem("Read-only");
readonlyItem.addActionListener(new
ActionListener(){
public void actionPerformed(ActionEvent e){
boolean saveOk=!readonlyItem.isSelected();
saveAction.setEnabled(saveOk);
saveAsAction.setEnabled(saveOk);
}
}
);

ButtonGroup group=new ButtonGroup();

JRadioButtonMenuItem insertItem=new JRadioButtonMenuItem("Insert");
insertItem.setSelected(true);
JRadioButtonMenuItem overtypeItem=new JRadioButtonMenuItem("Overtype");

group.add(insertItem);
group.add(overtypeItem);

Action cutAction=new TestAction("Cut");
cutAction.putValue(Action.SMALL_ICON,new ImageIcon("cut.gif"));
Action copyAction=new TestAction("Copy");
copyAction.putValue(Action.SMALL_ICON,new ImageIcon("copy.gif"));
Action pasteAction=new TestAction("Paste");
pasteAction.putValue(Action.SMALL_ICON,new ImageIcon("paste.gif"));


JMenu editMenu=new JMenu("Edit");
editMenu.add(cutAction);
editMenu.add(copyAction);
editMenu.add(pasteAction);
editMenu.add(colorAction);

JMenu optionMenu=new JMenu("Options");
optionMenu.add(readonlyItem);
optionMenu.addSeparator();
optionMenu.add(insertItem);
optionMenu.add(overtypeItem);

editMenu.addSeparator();
editMenu.add(optionMenu);

JMenu helpMenu=new JMenu("Help");
helpMenu.setMnemonic('H');

JMenuItem indexItem=new JMenuItem("Index");
indexItem.setMnemonic('I');
helpMenu.add(indexItem);

Action aboutAction=new TestAction("About");
aboutAction.putValue(Action.MNEMONIC_KEY,new Integer('A'));
helpMenu.add(aboutAction);

JMenuBar menuBar=new JMenuBar();
setJMenuBar(menuBar);

menuBar.add(fileMenu);
menuBar.add(editMenu);
menuBar.add(helpMenu);

popup=new JPopupMenu();
popup.add(cutAction);
popup.add(copyAction);
popup.add(pasteAction);


label.setComponentPopupMenu(popup);
//JPanel panel=new JPanel();
//panel.setComponentPopupMenu(popup);
//add(panel);

label.addMouseListener(new MouseAdapter(){});
//panel.addMouseListener(new MouseAdapter(){});

}
}
class TestAction extends AbstractAction{
public TestAction(String name){
super(name);
}
public void actionPerformed(ActionEvent event){
System.out.println(getValue(Action.NAME)+"selected");
}
}

  评论这张
 
阅读(287)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018