import java.awt.*; import java.awt.event.*; import javax.swing.*; import javax.swing.event.*; import javax.swing.text.*; import java.io.*; import javax.swing.text.*; public class P225_2_Notpad { /** * @param args */ public static void main(String[] args) { // TODO 自动生成方法存根 new P225_2("Notepad"); } } class P225_2 extends JFrame implements ActionListener{ Menu menu1=new Menu("File"), menu2=new Menu("Setting"), menu3=new Menu("About"); Choice cho_color=new Choice(); JTextArea text1=new JTextArea(40,12); MenuBar menubar1=new MenuBar(); Frame f=new Frame("Font set"); boolean f_show=false; MenuItem item1_1=new MenuItem("Open"), item1_2=new MenuItem("Save"), item1_3=new MenuItem("Save As"), item1_4=new MenuItem("Exit"), item2_color=new MenuItem("back_color"), item2_font=new MenuItem("font_color"), item2_size=new MenuItem("Font"), item3_about=new MenuItem("About"); FileDialog fd_as=new FileDialog(this,"Save as",FileDialog.SAVE); FileDialog fd_load=new FileDialog(this,"Open File",FileDialog.LOAD); //actionPerformed()的实现 public void actionPerformed(ActionEvent e){ File file_alive=null; if(e.getSource()==item1_1){ try{ if(text1.getText()!=""){ int n=JOptionPane.showConfirmDialog(this,"文件如果没有保存,数据将会丢失,继续吗","Continue?",JOptionPane.YES_NO_OPTION); if(n==JOptionPane.YES_OPTION){ fd_load.setVisible(true); file_alive=new File(fd_load.getFile()); RandomAccessFile in=new RandomAccessFile(file_alive,"rw"); String str_in=null; text1.setText(""); while((str_in=in.readUTF())!=null){ text1.append(in.readUTF()); } }} else{} } catch(IOException IOE_read){ } } if(e.getSource()==item1_2){ if(file_alive!=null){ try{ RandomAccessFile out=new RandomAccessFile(file_alive,"rw"); out.writeUTF(text1.getText()); } catch(IOException IOE_out){} } } if(e.getSource()==item1_3){ try{ fd_as.setVisible(true); RandomAccessFile raf_as=new RandomAccessFile(new File(fd_as.getFile()),"rw"); raf_as.writeUTF(text1.getText()); } catch(IOException IOE_as){} } if(e.getSource()==item1_4){ System.exit(0); } if(e.getSource()==item2_color){ text1.setBackground(JColorChooser.showDialog(this, "check a kind of Color",this.getBackground())); if(e.getSource()==item2_font){ text1.setForeground(JColorChooser.showDialog(this, "check a kind of Color",this.getBackground())); } if(e.getSource()==item2_size){ if(f_show==false){ ShowFontPanel(); f_show=true; } else if(f_show==true){ f.setVisible(false); f_show=true; }; } if(e.getSource()==item3_about){ System.out.println("Althor:Allchi"); } } } //showFontPanel() public void ShowFontPanel(){ GraphicsEnvironment ge=GraphicsEnvironment.getLocalGraphicsEnvironment(); String fontName[]=ge.getAvailableFontFamilyNames(); for(int i=0;i<fontName.length;i++){ cho_color.add(fontName[i]); } cho_color.setBounds(5,5,444,444); f.setLayout(null); f.add(cho_color); f.setBounds(222,222,444,444); f.setVisible(true); validate(); } //p225构造方法 P225_2(String str_name){ super(str_name); setLayout(null); setBounds(100,100,333,333); f.setVisible(false); menu1.add(item1_1);item1_1.addActionListener(this); menu1.add(item1_2);item1_2.addActionListener(this); menu1.add(item1_3);item1_3.addActionListener(this); menu1.add(item1_4);item1_4.addActionListener(this); menubar1.add(menu1); menu2.add(item2_color);item2_color.addActionListener(this); menu2.add(item2_font);item2_font.addActionListener(this); menu2.add(item2_size);item2_size.addActionListener(this); menubar1.add(menu2); menu3.add(item3_about);item3_about.addActionListener(this); menubar1.add(menu3); text1.setWrapStyleWord(false);//设置换行方式 text1.setBounds(5,5,this.WIDTH,this.HEIGHT); Container con=getContentPane(); con.setLayout(null); con.setBounds(4, 4, this.WIDTH, this.HEIGHT); con.add(text1); //add(con); setMenuBar(menubar1); //add(text1); //text1.setVisible(true); setVisible(true); validate(); } }