当前位置:早雪网网络学院编程文档Java → 从画图程序开始,走进GUI编程世界

从画图程序开始,走进GUI编程世界

减小字体 增大字体 作者:未知  来源:supcode.com收集整理  发布时间:2005-6-29 18:42:17
leMenu.addSeparator();
  addMenuItem(fileMenu,saveAction=new FileAction("保存","保存文件"),KeyStroke
     .getKeyStroke('S',Event.CTRL_MASK));
  addMenuItem(fileMenu,saveAsAction=new FileAction("另存为...","文件另存为"));
  fileMenu.addSeparator();
  addMenuItem(fileMenu,printAction=new FileAction("打印","打印文件"),KeyStroke
     .getKeyStroke('P',Event.CTRL_MASK));
  addMenuItem(elementMenu,lineAction=new TypeAction("直线",LINE,"绘制直线"),KeyStroke
     .getKeyStroke('1',Event.CTRL_MASK));
  addMenuItem(elementMenu,rectangleAction=new TypeAction("矩形",RECTANGLE,"绘制矩形"),KeyStroke
     .getKeyStroke('2',Event.CTRL_MASK));
  addMenuItem(elementMenu,circleAction=new TypeAction("椭圆",CIRCLE,"绘制椭圆"),KeyStroke
     .getKeyStroke('3',Event.CTRL_MASK));
  addMenuItem(elementMenu,curveAction=new TypeAction("曲线",CURVE,"绘制曲线"),KeyStroke
     .getKeyStroke('4',Event.CTRL_MASK));
  addMenuItem(elementMenu,textAction=new TypeAction("文字",TEXT,"输入文字"),KeyStroke
     .getKeyStroke('5',Event.CTRL_MASK));
  elementMenu.addSeparator();
  JMenu colorMenu=new JMenu("颜色");
  elementMenu.add(colorMenu);
  addMenuItem(colorMenu,redAction=new ColorAction("红色",Color.red,"绘制红色"),KeyStroke
     .getKeyStroke('1',Event.ALT_MASK));
  addMenuItem(colorMenu,yellowAction=new ColorAction("黄色",Color.yellow,"绘制黄色"),KeyStroke
     .getKeyStroke('2',Event.ALT_MASK));
  addMenuItem(colorMenu,greenAction=new ColorAction("绿色",Color.green,"绘制绿色"),KeyStroke
     .getKeyStroke('3',Event.ALT_MASK));
  addMenuItem(colorMenu,blueAction=new ColorAction("蓝色",Color.blue,"绘制蓝色"),KeyStroke
     .getKeyStroke('4',Event.ALT_MASK));
  aboutItem=new JMenuItem("关于");
  aboutItem.setAccelerator(KeyStroke.getKeyStroke('A',Event.CTRL_MASK));
  aboutItem.addActionListener(this);
  helpMenu.add(aboutItem);
  fontItem=new JMenuItem("字体选择");
  fontItem.setAccelerator(KeyStroke.getKeyStroke('T',Event.CTRL_MASK));
  fontItem.addActionListener(this);
  optionsMenu.add(fontItem);
  customColorItem=new JMenuItem("颜色选择");
  customColorItem.setAccelerator(KeyStroke.getKeyStroke('R',Event.CTRL_MASK));
  customColorItem.addActionListener(this);
  optionsMenu.add(customColorItem);
  menubar.add(fileMenu);
  menubar.add(elementMenu);
  menubar.add(optionsMenu);
  menubar.add(helpMenu);
  //工具栏的设置
  toolBar.add(newAction);
  toolBar.add(openAction);
  toolBar.add(saveAction);
  toolBar.add(printAction);
  toolBar.addSeparator();
  toolBar.add(lineAction);
  toolBar.add(rectangleAction);
  toolBar.add(circleAction);
  toolBar.add(curveAction);
  toolBar.add(textAction);
  toolBar.addSeparator();
  toolBar.add(redAction);
  toolBar.add(yellowAction);
  toolBar.add(greenAction);
  toolBar.add(blueAction);
  getContentPane().add(toolBar,BorderLayout.NORTH);
  toolBar.setFloatable(false);//工具栏禁止漂浮
  getContentPane().add(statusBar,BorderLayout.SOUTH);
  fontDlg=new FontDialog(this);
  popup=new JPopupMenu("General");
  popup.add(lineAction);
  popup.add(rectangleAction);
  popup.add(circleAction);
  popup.add(curveAction);
  popup.add(textAction);
  popup.addSeparator();
  popup.add(redAction);
  popup.add(yellowAction);
  popup.add(greenAction);
  popup.add(blueAction);
  files=new JFileChooser(DEFAULT_DIR);
  frameTitle=title+":";
  setTitle(frameTitle+filename);
  if(!DEFAULT_DIR.exists())
   if(!DEFAULT_DIR.mkdirs())
    JOptionPane.showMessageDialog(this,"建立文件失败!","错误",JOptionPane.ERROR_MESSAGE);
 }
 private JMenuItem addMenuItem(JMenu menu,Action action){
  //重载添加菜单元素的函数使其不具有图象,不具有快键
  JMenuItem item=menu.add(action);
  item.setIcon(null);
  return item;
 }
 private JMenuItem addMenuItem(JMenu menu,Action action,KeyStroke keys){
  //重载添加菜单元素的函数使其不具有图象,具有快键
  JMenuItem item=menu.add(action);
  item.setIcon(null);
  item.setAccelerator(keys);
  return item;
 }
 private JButton addToolBarButton(Action action){
  //重载添加工具栏按钮
  JButton button=toolBar.add(action);
  button.setText(null);
  return button;
 }
 public Color getElementColor(){
  return elementColor;
 }
 public int getElementType(){
  return elementType;
 }
 public Font getFont(){
  return font;
 }
 public void setFont(Font font){
   this.font=font;
 }
 public JPopupMenu getPopup(){
  return popup;
 }
 public void actionPerformed(ActionEvent e){
  if(e.getSource()==aboutItem){
   JOptionPane.showMessageDialog((Component)e.getSource(),"版本说明:画图软件由博雅制作"
    ,"关于",JOptionPane.INFORMATION_MESSAGE);
  }
  else if(e.getSource()==fontItem){
   Rectangle bounds=getBounds();
   fontDlg.setLocation(bounds.x+bounds.width/3,bounds.y+bounds.height/3);
   fontDlg.setVisible(true);
  }
  else if(e.getSource()==customColorItem){
   Color color=JColorChooser.showDialog(this,"颜色选择",elementColor);
   if(color!=null){
    elementColor=color;
    statusBar.setColorPane(color);
   }
  }
 }
 public void update(Observable o,Object obj){
  changed=true;
 }
 private File showDialog(String dlgTitle,String ABT,String ABTP,
  char ABM,File file){
   files.setDialogTitle(dlgTitle);
   files.setApproveButtonText(ABT);
   files.setApproveButtonToolTipText(ABTP);
   files.setApproveButtonMnemonic(ABM);
   files.rescanCurrentDirectory();
   files.setSelectedFile(file);
   int result=files.showDialog(DrawFrame.this,null);
   return(result==files.APPROVE_OPTION)?files.getSelectedFile():null;
 }
 private void saveIt(){
  if(!changed) return;
  if(modelFile!=null)
   saveDraw(modelFile)

上一页  [1] [2] [3] [4] [5]  下一页


Tags:画图,程序,开始,走进,GUI,编程,世界
[数据载入中...] [返回上一页] [打 印]