0
点赞
收藏
分享

微信扫一扫

疯狂java讲义习题11.4

凉夜lrs 2023-04-25 阅读 63


题目描述:
编写仿windows记事本的小程序

此处)折叠或打开

import java.awt.*;
.awt.event.*;
.io.*;
 
.swing.*;
.swing.event.ChangeEvent;
.swing.event.ChangeListener;
 class notePad extends JFrame
 {
= null;
= null;
;
,editMenu,formatMenu,aboutMenu;
,newMenuItem,saveMenuItem,exitMenuItem;
,copyMenu,findMenu,replaceMenu,selectAllMenu,pasteMenu;
;
,aboutMenuItem;
= new JTextField(15);
= new JTextField(15);
,replaceButton,replaceAllButton;
,replaceJframe;
int start=0;
;
=null;
=new JFileChooser();
;
     
=false;
public notePad()
     {
= new JTextArea();
add(new JScrollPane(textArea),BorderLayout.CENTER);
= new JMenu("文件");
.setFont(new Font("微软雅黑",0,15));
= new JMenuItem("新建");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
.addActionListener(listener);
             
=new JMenuItem("打开",new ImageIcon("icons\\open24.gif"));
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
=new JMenuItem("保存",new ImageIcon("icons\\save.gif"));
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
=new JMenuItem("退出",new ImageIcon("icons\\exit24.gif"));
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
.addActionListener(listener); 
         
= new JMenu("编辑");
.setFont(new Font("微软雅黑",0,15));
= new JMenuItem("剪切");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
= new JMenuItem("复制");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
= new JMenu("编辑");
.setFont(new Font("微软雅黑",0,15));
= new JMenuItem("粘贴");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
= new JMenu("编辑");
.setFont(new Font("微软雅黑",0,15));
= new JMenuItem("查找");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
= new JMenu("编辑");
.setFont(new Font("微软雅黑",0,15));
= new JMenuItem("替换");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
= new JMenu("编辑");
.setFont(new Font("微软雅黑",0,15));
= new JMenuItem("全选");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
= new JMenu("格式");
.setFont(new Font("微软雅黑",0,15));
         
= new JCheckBoxMenuItem("换行");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.addChangeListener(new ChangeListener()
         {
public void stateChanged(ChangeEvent e)
             {
if (checkMenu.isSelected())
                 {
                     
.setLineWrap(true);
                 }
else
                 {
                     
.setLineWrap(false);
                 }
             }
);
         
         
         
= new JMenuItem("字体");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.addActionListener(listener);
         
         
.add(newMenuItem);
.add(openMenuItem);
.add(saveMenuItem);
.add(exitMenuItem);
.add(selectAllMenu);
.add(replaceMenu);
.add(findMenu);
.add(cutMenu);
.add(pasteMenu);
.add(copyMenu);
.add(checkMenu);
.add(fontMenuItem);
         
         
=new JMenuBar();
.add(fileMenu);
.add(editMenu);
.add(formatMenu);
(menuBar);
= new JFrame("查找框");
=new JButton("开始");
.addActionListener(listener);
= new JFrame("替换框");
=new JTextField(15);
=new JTextField(15);
= new JButton("替换为");
.addActionListener(listener);
         
= new JButton("全部替换");
.addActionListener(listener);
this.setVisible(true);
this.setBounds(10, 10, 400, 300);
     }
=new ActionListener() {
public void actionPerformed(ActionEvent e) {
name=e.getActionCommand();
if(e.getSource() instanceof JMenuItem){
if("新建".equals(name)){
.setText("");
=null;
                     }
if("打开".equals(name)){
if(file!=null){
.setSelectedFile(file);
                         }
int returnVal=fileChooser.showOpenDialog(notePad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
=fileChooser.getSelectedFile();
                             }
                             try{
=new FileReader(file);
int len=(int)file.length();
[] array=new char[len];
.read(array,0,len);
.close();
.setText(new String(array));
                             }
(Exception e_open){
.printStackTrace();
                             }
                         }
                     }
if("保存".equals(name)){
if(file!=null){
.setSelectedFile(file);
                         }
int returnVal=fileChooser.showSaveDialog(notePad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
=fileChooser.getSelectedFile();
                         }
                         try{
=new FileWriter(file);
.write(textArea.getText());
.close();
                         }
(Exception e_save) {
.getStackTrace();
                         }
                     }
if("退出".equals(name)){
.exit(0);
                     }
if ("剪切".equals(name))
                     {
.cut();
                     }
if ("复制".equals(name))
                     {
.copy();
                     }
if ("粘贴".equals(name))
                     {
.paste();
                     }
if ("全选".equals(name)){
.out.println("全选");
                         
.selectAll();
                     }
if ("查找".equals(name))
                     {
= textArea.getText();
.add(textField1,BorderLayout.CENTER);
.add(startButton,BorderLayout.SOUTH);
.setLocation(300, 300);
.pack();
.setVisible(true);
.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
;                        
                     }
if ("替换".equals(name))
                     {
= textArea.getText();
= new JLabel("查找内容");
= new JLabel("替换为");
= new JPanel();
.setLayout(new GridLayout(2,2));
= new JPanel();
.setLayout(new GridLayout(1,3));
.add(panel1,BorderLayout.NORTH);
.add(panel2,BorderLayout.CENTER);
.add(label1);
.add(textField1);
.add(label2);
.add(textField2);
.add(startButton);
.add(replaceButton);
.add(replaceAllButton);
.setLocation(300,300);
.pack();
.setVisible(true);
.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
                     }
if("开始".equals(name)||"下一个".equals(name)){
=textField1.getText();
int s=value.indexOf(temp,start);
if(s!=-1){
.setSelectionStart(s);
.setSelectionEnd(s+temp.length());
.setSelectedTextColor(Color.GREEN);
=s+1;
.setText("下一个");
else {
.showMessageDialog(findJframe, "查找完毕!", "提示", 0,new ImageIcon("icons\\search.gif"));
.dispose();
                         }    
                     }
if ("替换为".equals(name))
                     {
= textField1.getText();
int s = value.indexOf(temp,start);
if (s != -1)
                         {
.setSelectionStart(s);
.setSelectionEnd(s+temp.length());
.setSelectedTextColor(Color.blue);
= s+1;
.replaceSelection(textField2.getText());
                         }
else
                         {
.showMessageDialog(findJframe, "查找完毕","提示",0,new ImageIcon(""));
.dispose();
                             
                         }
                     }
if ("全部替换".equals(name))
                     {
= textArea.getText();
.replaceAll(textField1.getText(), textField2.getText());
.setText(temp);    
                     }
if ("字体 ".equals(name))
                     {
= new FontDialog(notePad.this);
.setVisible(true);
if (textArea.getFont() != fontDialog.getFont())
                         {
.setFont(fontDialog.getFont());
                         }
                     }
             }
         
         
;    
, ActionListener, WindowListener
     {
public JCheckBox Bold=new JCheckBox("Bold",false);
public JCheckBox Italic=new JCheckBox("Italic",false);
public List Size,Name;
public int FontName;
public int FontStyle;
public int FontSize;
public JButton OK=new JButton("OK");
public JButton Cancel=new JButton("Cancel");
public JTextArea Text=new JTextArea("字体预览文本域\n0123456789\nAaBbCcXxYyZz");
public FontDialog(JFrame owner) {
(owner,"字体设置",true);
=GraphicsEnvironment.getLocalGraphicsEnvironment(); 
name[]=g.getAvailableFontFamilyNames();
Name=new List();
Size=new List();
=0;
=0;
=8;
int i=0;
Name.add("Default Value");
             
for(i=0;i<name.length;i++)
Name.add(name[i]);
for(i=8;i<257;i++) 
Size.add(String.valueOf(i));
             
this.setLayout(null);
this.setBounds(250,200,480, 306);
this.setResizable(false);
             
.setFocusable(false);
.setFocusable(false);
.setFocusable(false);
.setFocusable(false);
Name.setFocusable(false);
Size.setFocusable(false);
         //    Calender
Name.setBounds(10, 10, 212, 259);
this.add(Name);
.setBounds(314, 10, 64, 22);
this.add(Bold);
.setBounds(388, 10, 64, 22);
this.add(Italic);
Size.setBounds(232, 10, 64, 259);
this.add(Size);
.setBounds(306, 40, 157, 157);
this.add(Text);
.setBounds(306, 243, 74, 26);
this.add(OK);
.setBounds(390, 243, 74, 26);
this.add(Cancel);
             
Name.select(FontName);
Size.select(FontSize);
.setFont(getFont());
             
Name.addItemListener(this);
Size.addItemListener(this);
.addItemListener(this);
.addItemListener(this);
.addActionListener(this);
.addActionListener(this);
this.addWindowListener(this);
         }
public void itemStateChanged(ItemEvent e) {
.setFont(getFont());
         }
public void actionPerformed(ActionEvent e) {
if(e.getSource()==OK){
=Name.getSelectedIndex();
=getStyle();
=Size.getSelectedIndex();
this.setVisible(false);
             }
else cancel();
         }
public void windowClosing(WindowEvent e) {
();
         }
public Font getFont(){
if(Name.getSelectedIndex()==0) return new Font("新宋体",getStyle(),Size.getSelectedIndex()+8);
else return new Font(Name.getSelectedItem(),getStyle(),Size.getSelectedIndex()+8);
         }
public void cancel(){
Name.select(FontName);
Size.select(FontSize);
();
.setFont(getFont());
this.setVisible(false);
         }
public void setStyle(){
if(FontStyle==0 || FontStyle==2) Bold.setSelected(false);
else Bold.setSelected(true);
if(FontStyle==0 || FontStyle==1) Italic.setSelected(false);
else Italic.setSelected(true);
         }
public int getStyle(){
int bold=0,italic=0;
if(Bold.isSelected()) bold=1;
if(Italic.isSelected()) italic=1;
+italic*2;
         }
public void windowActivated(WindowEvent arg0) {}
public void windowClosed(WindowEvent arg0) {}
public void windowDeactivated(WindowEvent arg0) {}
public void windowDeiconified(WindowEvent arg0) {}
public void windowIconified(WindowEvent arg0) {}
public void windowOpened(WindowEvent arg0) {}
     }
 }
public class tengyanbo {
public static void main(String[] args)
     {
.invokeLater(new Runnable(){
public void run()
             {
= new notePad();
.setTitle("滕艳波的记事本");
.setVisible(true);
.setBounds(100,100,800,600);
.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                 
             }
             
);
     }
 } 
 参考程序: 


此处)折叠或打开 
 
 
/**
  * 作品:记事本
  * 作者:***
  * 功能:简单的文字编辑
  */
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
 
class NotePad extends JFrame{
     
private JMenuBar menuBar;
private JMenu fielMenu,editMenu,formMenu,aboutMenu;
private JMenuItem newMenuItem,openMenuItem,saveMenuItem,exitMenuItem;
private JMenuItem cutMenuItem,copyMenuItem,pasteMenuItem,foundItem,replaceItem,selectAll;
private JMenuItem font,about;
private JTextArea textArea;
private JFrame foundFrame,replaceFrame;
private JCheckBoxMenuItem wrapline;
private JTextField textField1=new JTextField(15);//JTextField(int columns) 构造一个具有指定列数的新的空 TextField。
private JTextField textField2=new JTextField(15);
private JButton startButton,replaceButton,reallButton;
     
int start=0;
String value;
File file=null;
JFileChooser fileChooser=new JFileChooser();
boolean wrap=false;
     
public NotePad(){
//创建文本域
textArea=new JTextArea();//JTextArea() 构造新的 TextArea。
add(new JScrollPane(textArea),BorderLayout.CENTER);
//创建文件菜单及文件菜单项
=new JMenu("文件");
.setFont(new Font("微软雅黑",0,15));
         
=new JMenuItem("新建",new ImageIcon(""));
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
.addActionListener(listener);
             
=new JMenuItem("打开",new ImageIcon("icons\\open24.gif"));
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
=new JMenuItem("保存",new ImageIcon("icons\\save.gif"));
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
=new JMenuItem("退出",new ImageIcon("icons\\exit24.gif"));
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_E,InputEvent.CTRL_MASK));
.addActionListener(listener); 
//创建编辑菜单及菜单项
=new JMenu("编辑");
.setFont(new Font("微软雅黑",0,15));
         
=new JMenuItem("剪切",new ImageIcon("icons\\cut24.gif"));
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
=new JMenuItem("复制",new ImageIcon("icons\\copy24.gif"));
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
=new JMenuItem("粘贴",new ImageIcon("icons\\paste24.gif"));
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
=new JMenuItem("查找");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
=new JMenuItem("替换");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
.addActionListener(listener);
         
selectAll=new JMenuItem("全选");
selectAll.setFont(new Font("微软雅黑",Font.BOLD,13));
selectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
selectAll.addActionListener(listener);
//创建格式菜单及菜单项
=new JMenu("格式");
.setFont(new Font("微软雅黑",0,15));
         
=new JCheckBoxMenuItem("自动换行");
.setFont(new Font("微软雅黑",Font.BOLD,13));
//wrapline.addActionListener(listener);
.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
if(wrapline.isSelected()){
textArea.setLineWrap(true);
}
else
textArea.setLineWrap(false);
}
});
         
font=new JMenuItem("字体");
font.setFont(new Font("微软雅黑",Font.BOLD,13));
font.addActionListener(listener);
//创建关于菜单
=new JMenu("关于");
.setFont(new Font("微软雅黑",0,15));
         
=new JMenuItem("记事本……");
.setFont(new Font("微软雅黑",Font.BOLD,13));
.addActionListener(listener);
//添加文件菜单项
.add(newMenuItem);
.add(openMenuItem);
.add(saveMenuItem);
.addSeparator();
.add(exitMenuItem);
//添加编辑菜单项
.add(cutMenuItem);
.add(copyMenuItem);
.add(pasteMenuItem);
.add(foundItem);
.add(replaceItem);
.addSeparator();
.add(selectAll);
//添加格式菜单项
.add(wrapline);
.add(font);
//添加关于菜单项
.add(about);
//添加菜单
menuBar=new JMenuBar();
menuBar.add(fielMenu);
menuBar.add(editMenu);
menuBar.add(formMenu);
menuBar.add(aboutMenu);
setJMenuBar(menuBar);
//创建两个框架,用作查找和替换
=new JFrame();
=new JFrame();
//创建两个文本框
=new JTextField(15);
=new JTextField(15);
         
=new JButton("开始");
.addActionListener(listener);
=new JButton("替换为");
.addActionListener(listener);
=new JButton("全部替换");
.addActionListener(listener);    
}
//创建菜单项事件监听器
ActionListener listener=new ActionListener() {
public void actionPerformed(ActionEvent e) {
String name=e.getActionCommand();//返回引发某个事件的命令按钮的名字,如果名字为空,那么返回标签值。
if(e.getSource() instanceof JMenuItem){
if("新建".equals(name)){
textArea.setText("");
file=null;
}
if("打开".equals(name)){
if(file!=null){
fileChooser.setSelectedFile(file);
}
int returnVal=fileChooser.showOpenDialog(NotePad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=fileChooser.getSelectedFile();
}
try{
FileReader reader=new FileReader(file);
int len=(int)file.length();
char[] array=new char[len];
reader.read(array,0,len);
reader.close();
textArea.setText(new String(array));
}
catch(Exception e_open){
.printStackTrace();
}
}
}
if("保存".equals(name)){
if(file!=null){
fileChooser.setSelectedFile(file);
}
int returnVal=fileChooser.showSaveDialog(NotePad.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=fileChooser.getSelectedFile();
}
try{
FileWriter writer=new FileWriter(file);
writer.write(textArea.getText());
writer.close();
}
catch (Exception e_save) {
.getStackTrace();
}
}
if("退出".equals(name)){
System.exit(0);
}
if("剪切".equals(name)){
textArea.cut();
}
if("复制".equals(name)){
textArea.copy();
}
if("粘贴".equals(name)){
textArea.paste();
}
if("查找".equals(name)){
value=textArea.getText();
.add(textField1,BorderLayout.CENTER);
.add(startButton,BorderLayout.SOUTH);
.setLocation(300,300);
.setTitle("查找");
.pack();
.setVisible(true);
.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
//            foundFrame.
if("替换".equals(name)){
value=textArea.getText();
JLabel label1=new JLabel("查找内容:");
JLabel label2=new JLabel("替换为:");
JPanel panel1=new JPanel();
.setLayout(new GridLayout(2,2));
JPanel panel2=new JPanel();
.setLayout(new GridLayout(1,3));
.add(panel1,BorderLayout.NORTH);
.add(panel2,BorderLayout.CENTER);
.add(label1);
.add(textField1);
.add(label2);
.add(textField2);
.add(startButton);
.add(replaceButton);
.add(reallButton);
.setTitle("替换");
.setLocation(300,300);
.pack();
.setVisible(true);
.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
}
if("开始".equals(name)||"下一个".equals(name)){
String temp=textField1.getText();
int s=value.indexOf(temp,start);
if(value.indexOf(temp,start)!=-1){
textArea.setSelectionStart(s);
textArea.setSelectionEnd(s+temp.length());
textArea.setSelectedTextColor(Color.GREEN);
start=s+1;
.setText("下一个");
}else {
JOptionPane.showMessageDialog(foundFrame, "查找完毕!", "提示", 0,new ImageIcon("icons\\search.gif"));
.dispose();
}
}
if("替换为".equals(name)){
String temp=textField1.getText();
int s=value.indexOf(temp,start);
if(value.indexOf(temp,start)!=-1){
textArea.setSelectionStart(s);
textArea.setSelectionEnd(s+temp.length());
textArea.setSelectedTextColor(Color.GREEN);
start=s+1;
textArea.replaceSelection(textField2.getText());
}else {
JOptionPane.showMessageDialog(foundFrame, "查找完毕!", "提示", 0,new ImageIcon("icons\\search.gif"));
.dispose();
}
}
if("全部替换".equals(name)){
String temp=textArea.getText();
=temp.replaceAll(textField1.getText(),textField2.getText());
textArea.setText(temp);
                     
}
if("全选".equals(name)){
textArea.selectAll();
}
if("字体".equals(name)){
=new FontDialog(NotePad.this);
.setVisible(true);
if(textArea.getFont()!=fontDialog.getFont()){
textArea.setFont(fontDialog.getFont());
}
}
if("记事本……".equals(name)){
=new AboutDialog(NotePad.this);
.setVisible(true);
}    
}    
};
     
//创建字体设置对话面板,并添加相应事件监听器
class FontDialog extends JDialog implements ItemListener, ActionListener, WindowListener{
public JCheckBox Bold=new JCheckBox("Bold",false);
public JCheckBox Italic=new JCheckBox("Italic",false);
public List Size,Name;
public int FontName;
public int FontStyle;
public int FontSize;
public JButton OK=new JButton("OK");
public JButton Cancel=new JButton("Cancel");
public JTextArea Text=new JTextArea("字体预览文本域\n0123456789\nAaBbCcXxYyZz");
public FontDialog(JFrame owner) {
super(owner,"字体设置",true);
GraphicsEnvironment g=GraphicsEnvironment.getLocalGraphicsEnvironment(); 
String name[]=g.getAvailableFontFamilyNames();
Name=new List();
Size=new List();
=0;
=0;
=8;
int i=0;
Name.add("Default Value");
             
for(i=0;i<name.length;i++)
Name.add(name[i]);
for(i=8;i<257;i++) 
Size.add(String.valueOf(i));
             
this.setLayout(null);
this.setBounds(250,200,480, 306);
this.setResizable(false);
             
.setFocusable(false);
Cancel.setFocusable(false);
.setFocusable(false);
.setFocusable(false);
Name.setFocusable(false);
Size.setFocusable(false);
//    Calender
Name.setBounds(10, 10, 212, 259);
this.add(Name);
.setBounds(314, 10, 64, 22);
this.add(Bold);
.setBounds(388, 10, 64, 22);
this.add(Italic);
Size.setBounds(232, 10, 64, 259);
this.add(Size);
Text.setBounds(306, 40, 157, 157);
this.add(Text);
.setBounds(306, 243, 74, 26);
this.add(OK);
Cancel.setBounds(390, 243, 74, 26);
this.add(Cancel);
             
Name.select(FontName);
Size.select(FontSize);
Text.setFont(getFont());
             
Name.addItemListener(this);
Size.addItemListener(this);
.addItemListener(this);
.addItemListener(this);
.addActionListener(this);
Cancel.addActionListener(this);
this.addWindowListener(this);
}
public void itemStateChanged(ItemEvent e) {
Text.setFont(getFont());
}
public void actionPerformed(ActionEvent e) {
if(e.getSource()==OK){
=Name.getSelectedIndex();
=getStyle();
=Size.getSelectedIndex();
this.setVisible(false);
}
else cancel();
}
public void windowClosing(WindowEvent e) {
cancel();
}
public Font getFont(){
if(Name.getSelectedIndex()==0) return new Font("新宋体",getStyle(),Size.getSelectedIndex()+8);
else return new Font(Name.getSelectedItem(),getStyle(),Size.getSelectedIndex()+8);
}
public void cancel(){
Name.select(FontName);
Size.select(FontSize);
();
Text.setFont(getFont());
this.setVisible(false);
}
public void setStyle(){
if(FontStyle==0 || FontStyle==2) Bold.setSelected(false);
else Bold.setSelected(true);
if(FontStyle==0 || FontStyle==1) Italic.setSelected(false);
else Italic.setSelected(true);
}
public int getStyle(){
int bold=0,italic=0;
if(Bold.isSelected()) bold=1;
if(Italic.isSelected()) italic=1;
return bold+italic*2;
}
public void windowActivated(WindowEvent arg0) {}
public void windowClosed(WindowEvent arg0) {}
public void windowDeactivated(WindowEvent arg0) {}
public void windowDeiconified(WindowEvent arg0) {}
public void windowIconified(WindowEvent arg0) {}
public void windowOpened(WindowEvent arg0) {}
}
     
//创建关于对话框
class AboutDialog extends JDialog implements ActionListener{
public JButton OK,Icon;
public JLabel Name,Version,Author,Java;
public JPanel Panel;
(JFrame owner) {
super(owner,"关于",true); 
=new JButton("OK");
Icon=new JButton(new ImageIcon("icons\\edit.gif"));
Name=new JLabel("Notepad");
Version=new JLabel("Version 1.0");
Java=new JLabel("JRE Version 6.0");
=new JLabel("Copyright (c) 11-5-2012 By Jianmin Chen");
Panel=new JPanel();
Color c=new Color(0,95,191);
Name.setForeground(c);
Version.setForeground(c);
Java.setForeground(c);
.setForeground(c);
Panel.setBackground(Color.white);
.setFocusable(false);
this.setBounds(250,200,280, 180);
         
this.setResizable(false);
this.setLayout(null);
Panel.setLayout(null);
.addActionListener(this);
Icon.setFocusable(false);
Icon.setBorderPainted(false);
.setFont(new Font(null,Font.PLAIN,11));
Panel.add(Icon);
Panel.add(Name);
Panel.add(Version);
Panel.add(Author);
Panel.add(Java);
this.add(Panel);
this.add(OK);
Panel.setBounds(0, 0, 280, 100);
.setBounds(180, 114, 72, 26);
Name.setBounds(80, 10, 160, 20);
Version.setBounds(80, 27, 160, 20);
.setBounds(15, 70, 250, 20);
Java.setBounds(80, 44, 160, 20);
Icon.setBounds(16, 14, 48, 48);
}
public void actionPerformed(ActionEvent e) {
this.setVisible(false);
}
}
}
 
//创建记事本
public class ChenJianmin {
public static void main(String[] args){
EventQueue.invokeLater(new Runnable() {
public void run() {
=new NotePad();
.setTitle("记事本");
.setVisible(true);
.setBounds(100,100,800,600);
.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
});
}
}

举报

相关推荐

0 条评论