【转】经典Java程序源代码(一)
http://yumengyuyuan.blog.163.com/blog/static/206225022201211131145492/
1.加法器(该java源文件的名称是Adder.java)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Adder implements ActionListener
{
JFrame AdderFrame;
JTextField TOprand1;
JTextField TOprand2;
JLabel LAdd,LSum;
JButton BAdd,BClear;
JPanel JP1,JP2;
public Adder()
{
AdderFrame=new JFrame("AdderFrame");
TOprand1=new JTextField("0.0");
TOprand2=new JTextField("0.0");
LAdd=new JLabel("+");
LSum=new JLabel("= ");
BAdd=new JButton("Add");
BClear=new JButton("Clear");
JP1=new JPanel();
JP2=new JPanel();
BAdd.addActionListener(this);
BClear.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
TOprand1.setText("0.0");
TOprand2.setText("0.0");
LSum.setText("=");
}
});
AdderFrame.add(JP1);
JP1.add(TOprand1);
JP1.add(LAdd);
JP1.add(TOprand2);
JP1.add(LSum);
AdderFrame.add(JP2);
JP2.add(BAdd);
JP2.add(BClear);
AdderFrame.getContentPane().setLayout(new BorderLayout());
AdderFrame.getContentPane().add(JP1,BorderLayout.NORTH);
AdderFrame.getContentPane().add(JP2,BorderLayout.SOUTH);
AdderFrame.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent event)
{
System.exit(0);
}
});
AdderFrame.pack();
AdderFrame.setVisible(true);
AdderFrame.setResizable(false);
AdderFrame.setSize(250,100);
}
public void actionPerformed(ActionEvent event)
{
double sum=(double)(Double.valueOf(TOprand1.getText()).doubleValue()+Double.valueOf(TOprand2.getText()).doubleValue());
LSum.setText("="+sum);
}
public static void main(String[] args)
{
Adder adder=new Adder();
}
}
2.小型记事本(该java源文件由两个类构成,名称为Notepad.java)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
class mynotepad extends JFrame
{
File file=null;
Color color=Color.red;
mynotepad()
{
initTextContent();
initMenu();
initAboutDialog();
}
void initTextContent()
{
getContentPane().add(new JScrollPane(content));
}
JTextPane content=new JTextPane();
JFileChooser openfile=new JFileChooser();
JColorChooser opencolor=new JColorChooser();
JDialog about=new JDialog(this);
JMenuBar menu=new JMenuBar();
//菜单栏的各个菜单项
JMenu[] menus=new JMenu[]{new JMenu("文件"),new JMenu("编辑"),new JMenu("关于")};
//"文件"菜单项的四个下拉菜单
//编辑菜单的四个下拉菜单
JMenuItem optionofmenu[][]=new JMenuItem[][]{{new JMenuItem("新建"),new JMenuItem("打开"),new JMenuItem("保存"),new JMenuItem("退出")},
{new JMenuItem("复制"),new JMenuItem("剪切"),new JMenuItem("粘贴"),new JMenuItem("颜色")},
{new JMenuItem("关于")}
};
void initMenu()
{
for(int i=0;i<menus.length;i++)
{
menu.add(menus[i]);
for(int j=0;j<optionofmenu[i].length;j++)
{
menus[i].add(optionofmenu[i][j]);
optionofmenu[i][j].addActionListener( action );
}
}
this.setJMenuBar(menu);
}
ActionListener action=new ActionListener()
{ //添加事件监听
public void actionPerformed(ActionEvent e)
{
String name = e.getActionCommand();
JMenuItem MI=(JMenuItem)e.getSource();
if("新建".equals(name))
{
content.setText("");
file=null;
}
else if("打开".equals(name))
{
if(file !=null)
openfile.setSelectedFile(file);
int returnVal=openfile.showOpenDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION)
{
file=openfile.getSelectedFile();
unfold();
}
}
else if("保存".equals(name))
{
if(file!=null) openfile.setSelectedFile(file);
int returnVal=openfile.showSaveDialog(mynotepad.this);
if(returnVal==JFileChooser.APPROVE_OPTION)
{
file=openfile.getSelectedFile();
saving();
}
}
else if("退出".equals(name))
{
mynotepad f=new mynotepad();
int s=JOptionPane.showConfirmDialog(f,"退出?","退出",JOptionPane.YES_NO_OPTION);
if(s==JOptionPane.YES_OPTION)
System.exit(0);
}
else if("剪切".equals(name))
{
content.cut();
}
else if("复制".equals(name))
{
content.copy();
}
else if("粘贴".equals(name))
{
content.paste();
}
else if("颜色".equals(name))
{
color=JColorChooser.showDialog(mynotepad.this,"",color);
content.setForeground(color);
}
else if("关于".equals(name))
{
about.setSize(300,150);
about.show();
}
}
};
void saving()
{
try
{
FileWriter Writef=new FileWriter(file);
Writef.write(content.getText());
Writef.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
void unfold()
{
try
{
FileReader Readf=new FileReader(file);
int len=(int)file.length();
char []buffer=new char[len];
Readf.read(buffer,0,len);
Readf.close();
content.setText(new String(buffer));
}
catch(Exception e)
{
e.printStackTrace();
}
}
void initAboutDialog()
{
about.setLayout(new GridLayout(3,1));
about.getContentPane().setBackground(Color.white);
about.getContentPane().add(new JLabel("我的记事本程序"));//对话框内容
about.getContentPane().add(new JLabel("制作者:Fwx"));
about.getContentPane().add(new JLabel("2007年12月"));
about.setModal(true); //设置对话框前端显示
about.setSize(100,100);
about.setLocation(250,170); //设置对话框显示位置
};
}
public class Notepad
{
public static void main(String args[])
{ //入口main函数
mynotepad noted=new mynotepad();
noted.addWindowListener(new WindowAdapter()
{
});
noted.setTitle("我的记事本程序"); //记事本标题
noted.setSize(640,320); //设置记事本大小
noted.show();
noted.setLocation(150,100); //设置记事本显示位置
}
}