QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: goldedge

java随笔

[复制链接]
 楼主| 发表于 2003-11-11 11:13:51 | 显示全部楼层
很抱歉,我想最近我的贴子越来越……呵呵,不过我也是希望能尽快完成游戏的设计工作~~以前曾经计划过国庆节期间完成所有设计的~~  

祝你好运,加油
回复

使用道具 举报

发表于 2003-11-12 00:43:24 | 显示全部楼层
不知道goldedge怎么解决用awt和swing图形工具包编写的图形界面的
]中文显示问题
可能你用的是中文windows(我不用中文版windows,所以不知道情况,猜的),没有这种问题,不过如果知道的话,请麻烦告诉一下.
我真的不想以指定字体的方式太来解决,这样太麻烦了
特别是Linux下
ML下面我到没写过Java,不知道怎么样,谁知道的话,也请麻烦说一下,先谢谢了
回复

使用道具 举报

发表于 2003-11-12 00:45:12 | 显示全部楼层
小心翼翼地: 不知道我的问题有没有人回答?! :-(  
回复

使用道具 举报

 楼主| 发表于 2003-11-12 23:12:15 | 显示全部楼层
不知道goldedge怎么解决用awt和swing图形工具包编写的图形界面的
]中文显示问题
可能你用的是中文windows(我不用中文版windows,所以不知道情况,猜的),没有这种问题,不过如果知道的话,请麻烦告诉一下.
我真的不想以指定字体的方式太来解决,这样太麻烦了
特别是Linux下
ML下面我到没写过Java,不知道怎么样,谁知道的话,也请麻烦说一下,先谢谢了


Austern,
不好意思,刚看到,最近公社总是上不了公社
我确实只是在中文windosz下用,不过我帮你问问我师兄,回头告诉你
回复

使用道具 举报

 楼主| 发表于 2003-11-12 23:12:48 | 显示全部楼层
学习J2SE过程中的30个基本概念
前言: 在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,所以有必要对其中的基本概念做以归纳,以便大家在以后的学习过程中更好的理解java的精髓,在此我总结了30条基本的概念.
Java概述:
目前Java主要应用于中间件的开发(middleware)---处理客户机于服务器之间的通信技术,早期的实践证明,Java不适合pc应用程序的开发,其发展逐渐变成在开发手持设备,互联网信息站,及车载计算机的开发.Java于其他语言所不同的是程序运行时提供了平台的独立性,称许可以在windows,solaris,linux其他操作系统上使用完全相同的代码.Java的语法与C++语法类似,C++/C程序员很容易掌握,而且Java是完全的彻底的面向对象的,其中提出了很好的GC(Garbage Collector)垃圾处理机制,防止内存溢出.
Java的白皮书为我们提出了Java语言的11个关键特性.
       (1)Easy:Java的语法比C++的相对简单,另一个方面就是Java能使软件在很小的机器上运行,基础解释其和类库的支持的大小约为40kb,增加基本的标准库和线程支持的内存需要增加125kb.
       (2)分布式:Java带有很强大的TCP/IP协议族的例程库,Java应用程序能够通过URL来穿过网络来访问远程对象,由于servlet机制的出现,使Java编程非常的高效,现在许多的大的web server都支持servlet.
       (3)OO:面向对象设计是把重点放在对象及对象的接口上的一个编程技术.其面向对象和C++有很多不同,在与多重继承的处理及Java的原类模型.
       (4)健壮特性:Java采取了一个安全指针模型,能减小重写内存和数据崩溃的可能型
       (5)安全:Java用来设计网路和分布系统,这带来了新的安全问题,Java可以用来构建防病毒和防攻击的System.事实证明Java在防毒这一方面做的比较好.
       (6)中立体系结构:Java编译其生成体系结构中立的目标文件格式可以在很多处理器上执行,编译器产生的指令字节码(Javabytecode)实现此特性,此字节码可以在任何机器上解释执行.
       (7)可移植性:Java中对基本数据结构类型的大小和算法都有严格的规定所以可移植性很好.
       (多线程:Java处理多线程的过程很简单,Java把多线程实现交给底下操作系统或线程程序完成.所以多线程是Java作为服务器端开发语言的流行原因之一
       (9)Applet和servlet:能够在网页上执行的程序叫Applet,需要支持Java的浏览器很多,而applet支持动态的网页,这是很多其他语言所不能做到的.

基本概念:
1.OOP中唯一关系的是对象的接口是什么,就像计算机的销售商她不管电源内部结构是怎样的,他只关系能否给你提供电就行了,也就是只要知道can or not而不是how and why.所有的程序是由一定的属性和行为对象组成的,不同的对象的访问通过函数调用来完成,对象间所有的交流都是通过方法调用,通过对封装对象数据,很大限度上提高复用率.
2.OOP中最重要的思想是类,类是模板是蓝图,从类中构造一个对象,即创建了这个类的一个实例(instance)
3.封装:就是把数据和行为结合起在一个包中)并对对象使用者隐藏数据的实现过程,一个对象中的数据叫他的实例字段(instance field)
4.通过扩展一个类来获得一个新类叫继承(inheritance),而所有的类都是由Object根超类扩展而得,根超类下文会做介绍.
5.对象的3个主要特性
                     behavior---说明这个对象能做什么.
       state---当对象施加方法时对象的反映.
       identity---与其他相似行为对象的区分标志.
       每个对象有唯一的indentity 而这3者之间相互影响.
6.类之间的关系:
                     use-a :依赖关系
       has-a :聚合关系
       is-a    :继承关系--例:A类继承了B类,此时A类不仅有了B类的方法,还有其自己的方法.(个性存在于共性中)
7.构造对象使用构造器:构造器的提出,构造器是一种特殊的方法,构造对象并对其初始化.
                  例:Data类的构造器叫Data
             new Data()---构造一个新对象,且初始化当前时间.
      Data happyday=new Data()---把一个对象赋值给一个变量happyday,从而使该对象能够多次使用,此处要声明的使变量与对象变量二者是不同的.new返回的值是一个引用.
     构造器特点:构造器可以有0个,一个或多个参数
                         构造器和类有相同的名字
                                一个类可以有多个构造器
    构造器没有返回值
    构造器总是和new运算符一起使用.
8.重载:当多个方法具有相同的名字而含有不同的参数时,便发生重载.编译器必须挑选出调用哪个方法.
9.包(package)Java允许把一个或多个类收集在一起成为一组,称作包,以便于组织任务,标准Java库分为许多包.java.lang  java.util  java,net等,包是分层次的所有的java包都在java和javax包层次内.
10.继承思想:允许在已经存在的类的基础上构建新的类,当你继承一个已经存在的类时,那么你就复用了这个类的方法和字段,同时你可以在新类中添加新的方法和字段.
11.扩展类:扩展类充分体现了is-a的继承关系. 形式为:class (子类) extends (基类).
12.多态:在java中,对象变量是多态的.而java中不支持多重继承.
13.动态绑定:调用对象方法的机制.
      (1)编译器检查对象声明的类型和方法名.
      (2)编译器检查方法调用的参数类型.
      (3)静态绑定:若方法类型为priavte static final 编译器会准确知道该调用哪个方法.
      (4)当程序运行并且使用动态绑定来调用一个方法时,那么虚拟机必须调用x所指向的对象的实际类型相匹配的方法版本.
      (5)动态绑定:是很重要的特性,它能使程序变得可扩展而不需要重编译已存代码.
  14.final类:为防止他人从你的类上派生新类,此类是不可扩展的.
  15.动态调用比静态调用花费的时间要长,
  16.抽象类:规定一个或多个抽象方法的类本身必须定义为abstract
         例: public abstract string getDescripition
  17.Java中的每一个类都是从Object类扩展而来的.
  18.object类中的equal和toString方法.
                equal用于测试一个对象是否同另一个对象相等.
  toString返回一个代表该对象的字符串,几乎每一个类都会重载该方法,以便返回当前状态的正确表示.
  (toString 方法是一个很重要的方法)
  19.通用编程:任何类类型的所有值都可以同object类性的变量来代替.
  20.数组列表:ArrayList动态数组列表,是一个类库,定义在java.uitl包中,可自动调节数组的大小.
  21.class类 object类中的getclass方法返回ckass类型的一个实例,程序启动时包含在main方法的类会被加载,虚拟机要加载他需要的所有类,每一个加载的类都要加载它需要的类.
  22.class类为编写可动态操纵java代码的程序提供了强大的功能反射,这项功能为JavaBeans特别有用,使用反射Java能支持VB程序员习惯使用的工具.
  能够分析类能力的程序叫反射器,Java中提供此功能的包叫Java.lang.reflect反射机制十分强大.
                            1.在运行时分析类的能力.
       2.在运行时探察类的对象.
       3.实现通用数组操纵代码.
       4.提供方法对象.
  而此机制主要针对是工具者而不是应用及程序.
   反射机制中的最重要的部分是允许你检查类的结构.用到的API有:
           java.lang.reflect.Field 返回字段.
    java.reflect.Method    返回方法.
    java.lang.reflect.Constructor  返回参数.
    方法指针:java没有方法指针,把一个方法的地址传给另一个方法,可以在后面调用它,而接口是更好的解决方案.
  23.接口(Interface)说明类该做什么而不指定如何去做,一个类可以实现一个或多个interface.
  24.接口不是一个类,而是对符合接口要求的类的一套规范.
        若实现一个接口需要2个步骤:
1.声明类需要实现的指定接口.
2.提供接口中的所有方法的定义.
声明一个类实现一个接口需要使用implements 关键字
class actionB implements Comparable 其actionb需要提供CompareTo方法,接口不是类,不能用new实例化一个接口.
  25.一个类只有一个超类,但一个类能实现多个接口.Java中的一个重要接口
  Cloneable
  26.接口和回调.编程一个常用的模式是回调模式,在这种模式中你可以指定当一个特定时间发生时回调对象上的方法.
   例:ActionListener 接口监听.
   类似的API有:java.swing.JOptionPane
                        java.swing.Timer
   java.awt.Tookit
  27.对象clone:clone方法是object一个保护方法,这意味着你的代码不能简单的调用它.
  28.内部类:一个内部类的定义是定义在另一个内部的类
  原因是:1.一个内部类的对象能够访问创建它的对象的实现,包括私有数据
              2.对于同一个包中的其他类来说,内部类能够隐藏起来.
       3.匿名内部类可以很方便的定义回调.
       4.使用内部类可以非常方便的编写事件驱动程序.
  29.代理类(proxy):1.指定接口要求所有代码
                              2.object类定义的所有的方法(toString equals)
  30.数据类型:Java是强调类型的语言,每个变量都必须先申明它都类型,java中总共有8个基本类型.4种是整型,2种是浮点型,一种是字符型,被用于
Unicode编码中的字符,布尔型.
转自csdn
回复

使用道具 举报

发表于 2003-11-19 11:08:29 | 显示全部楼层
不好意思,刚看到,最近公社总是上不了公社
我确实只是在中文windosz下用,不过我帮你问问我师兄,回头告诉你

恩,先谢兄台了
回复

使用道具 举报

发表于 2003-11-19 11:11:31 | 显示全部楼层
[quote:c9ae9471c7="goldedge"]学习J2SE过程中的30个基本概念
前言: 在我们学习Java的过程中,掌握其中的基本概念对我们的学习无论是J2SE,J2EE,J2ME都是很重要的,J2SE是Java的基础,.......[/quote]
汉,要彻底理解这么多概念不知道要到猴年马月 :-(
回复

使用道具 举报

 楼主| 发表于 2003-11-20 11:33:15 | 显示全部楼层
Austern,说实话是这样的,不过通过做一些项目就可以熟练运用这些了

你的那个问题,我帮你在其他论坛贴帖子了,我的师兄门都和我一样,只会在windoze下的,不好意思.

有回复我会告诉你
回复

使用道具 举报

发表于 2003-11-21 00:44:47 | 显示全部楼层
goldedge兄,对你的热心我又能说什么呢,再次表示感谢
Java显示字体有问题,我估计只是解析环境找不到预设字体的缘故,如果预设字体在当时运行环境里能够找到的话,应该就能正常显示了 ....
回复

使用道具 举报

 楼主| 发表于 2003-11-25 18:36:00 | 显示全部楼层
我在两个常上的论坛贴了,不过都是音信全无 sorry!
回复

使用道具 举报

 楼主| 发表于 2004-1-20 18:07:33 | 显示全部楼层
以前用Jbuilder 写的一个记事本程序,供java 初学者

package texteditor;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.text.Document;
import javax.swing.event.*;
import java.io.*;
import javax.swing.undo.*;
import java.awt.datatransfer.*;
import com.borland.dbswing.*;



/**
* <p>Title: 文本编辑器</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: bjut</p>
* @author haofeng
* @version 1.0
*/

public class TextEditorFrame extends JFrame {
Document document1;
JFileChooser jFileChooser1 = new JFileChooser();
final UndoManager edit= new UndoManager();
Clipboard sysClipboard=Toolkit.getDefaultToolkit().getSystemClipboard();
boolean saveNeeded;
String currentFileName;
JPanel contentPane;
JMenuBar jMenuBar1 = new JMenuBar();
JMenu jMenuFile = new JMenu();
JMenu jMenuHelp = new JMenu();
JMenuItem jMenuHelpAbout = new JMenuItem();
JToolBar jToolBar = new JToolBar();
JButton jButton1 = new JButton();
JButton jButton2 = new JButton();
JButton jButton3 = new JButton();
ImageIcon image1;
ImageIcon image2;
ImageIcon image3;
JLabel statusBar = new JLabel();
BorderLayout borderLayout1 = new BorderLayout();
JMenuItem jMenuFileExit = new JMenuItem();
JMenuItem jMenuFileSaveas = new JMenuItem();
JMenuItem jMenuFileSave = new JMenuItem();
JMenuItem jMenuFileOpen = new JMenuItem();
JMenuItem jMenuFileNew = new JMenuItem();
JMenu jMenuEdit = new JMenu();
JMenuItem jMenuEditBColor = new JMenuItem();
JMenuItem jMenuEditColor = new JMenuItem();
JMenuItem jMenuEditPaste = new JMenuItem();
JMenuItem jMenuEditCut = new JMenuItem();
JMenuItem jMenuEditCopy = new JMenuItem();
JMenuItem jMenuEditSelAll = new JMenuItem();
JMenuItem jMenuEditRedo = new JMenuItem();
JMenuItem jMenuEditUndo = new JMenuItem();
JScrollPane TextScrollPane = new JScrollPane();
JTextArea jTextArea1 = new JTextArea();

//Construct the frame
public TextEditorFrame() {
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
document1 = jTextArea1.getDocument();
image1 = new ImageIcon(texteditor.TextEditorFrame.class.getResource("openFile.png"));
image2 = new ImageIcon(texteditor.TextEditorFrame.class.getResource("closeFile.png"));
image3 = new ImageIcon(texteditor.TextEditorFrame.class.getResource("help.png"));
contentPane = (JPanel) this.getContentPane();
contentPane.setLayout(borderLayout1);
this.setSize(new Dimension(400, 300));
this.setTitle("Frame Title");
statusBar.setText(" ");
jMenuFile.setText("File");
jMenuHelp.setText("Help");
jMenuHelpAbout.setText("About");
jMenuHelpAbout.addActionListener(new TextEditorFrame_jMenuHelpAbout_ActionAdapter(this));
jButton1.setIcon(image1);
jButton1.setToolTipText("Open File");
jButton2.setIcon(image2);
jButton2.setToolTipText("Close File");
jButton3.setIcon(image3);
jButton3.setToolTipText("Help");
jMenuFileExit.setText("Exit");
jMenuFileExit.addActionListener(new TextEditorFrame_jMenuFileExit_actionAdapter(this));
jMenuFileNew.setText("New");
jMenuFileNew.addActionListener(new TextEditorFrame_jMenuFileNew_actionAdapter(this));
jMenuFileOpen.setText("Open");
jMenuFileOpen.addActionListener(new TextEditorFrame_jMenuFileOpen_actionAdapter(this));
jMenuFileSave.setText("Save");
jMenuFileSave.addActionListener(new TextEditorFrame_jMenuFileSave_actionAdapter(this));
jMenuFileSaveas.setText("Save As");
jMenuFileSaveas.addActionListener(new TextEditorFrame_jMenuFileSaveas_actionAdapter(this));
jMenuEdit.setText("Edit");
jMenuEdit.addFocusListener(new TextEditorFrame_jMenuEdit_focusAdapter(this));
jMenuEditUndo.setText("Undo");
jMenuEditUndo.addActionListener(new TextEditorFrame_jMenuEditUndo_actionAdapter(this));
jMenuEditRedo.setText("Redo");
jMenuEditRedo.addActionListener(new TextEditorFrame_jMenuEditRedo_actionAdapter(this));
jMenuEditSelAll.setText("Select All");
jMenuEditCopy.setText("Copy");
jMenuEditCopy.addActionListener(new TextEditorFrame_jMenuEditCopy_actionAdapter(this));
jMenuEditCut.setText("Cut");
jMenuEditCut.addActionListener(new TextEditorFrame_jMenuEditCut_actionAdapter(this));
jMenuEditPaste.setText("Paste");
jMenuEditPaste.addActionListener(new TextEditorFrame_jMenuEditPaste_actionAdapter(this));
jMenuEditColor.setText("Foreground Color");
jMenuEditColor.addActionListener(new TextEditorFrame_jMenuEditColor_actionAdapter(this));
jMenuEditBColor.setText("Background Color");
jMenuEditBColor.addActionListener(new TextEditorFrame_jMenuEditBColor_actionAdapter(this));
document1.addDocumentListener(new TextEditorFrame_document1_documentAdapter(this));
document1.addUndoableEditListener(new TextEditorFrame_document1_undoableEditAdapter(this));
jTextArea1.setToolTipText("");
jTextArea1.setText("");
jTextArea1.setLineWrap(true);
jToolBar.add(jButton1);
jToolBar.add(jButton2);
jToolBar.add(jButton3);
jMenuHelp.add(jMenuHelpAbout);
jMenuBar1.add(jMenuFile);
jMenuBar1.add(jMenuEdit);
jMenuBar1.add(jMenuHelp);
this.setJMenuBar(jMenuBar1);
contentPane.add(jToolBar, BorderLayout.NORTH);
contentPane.add(statusBar, BorderLayout.SOUTH);
contentPane.add(TextScrollPane, BorderLayout.CENTER);
TextScrollPane.getViewport().add(jTextArea1, null);
jMenuFile.add(jMenuFileNew);
jMenuFile.add(jMenuFileOpen);
jMenuFile.add(jMenuFileSave);
jMenuFile.add(jMenuFileSaveas);
jMenuFile.addSeparator();
jMenuFile.add(jMenuFileExit);
jMenuEdit.add(jMenuEditUndo);
jMenuEdit.add(jMenuEditRedo);
jMenuEdit.addSeparator();
jMenuEdit.add(jMenuEditSelAll);
jMenuEdit.add(jMenuEditCopy);
jMenuEdit.add(jMenuEditCut);
jMenuEdit.add(jMenuEditPaste);
jMenuEdit.addSeparator();
jMenuEdit.add(jMenuEditColor);
jMenuEdit.add(jMenuEditBColor);
}
//File | Exit action performed
void openFile(){
if (!okToAbandon()) {
return;
}
if(JFileChooser.APPROVE_OPTION== jFileChooser1.showOpenDialog(this)) {
openSelectedFile(jFileChooser1.getSelectedFile().getPath());
}
this.repaint();
}

void openSelectedFile(String fileName){
try{
File file = new File(fileName);
int fileSize = (int)file.length();
int charsReaded = 0;
FileReader in = new FileReader(file);
char[] data = new char[fileSize];
while(in.ready()) {
charsReaded += in.read(data, charsReaded, fileSize - charsReaded);
}
in.close();
jTextArea1.setText(new String(data, 0, charsReaded));
this.currentFileName = fileName;
this.saveNeeded = false;
statusBar.setText("打开 "+fileName);
updateTitle();
}
catch (IOException e){
statusBar.setText("Error opening "+fileName);
}
}

boolean okToAbandon(){
if(!saveNeeded){
return true;
}
int value=JOptionPane.showConfirmDialog(this,"保存文件吗?","文本编辑",JOptionPane.YES_NO_CANCEL_OPTION );
switch(value){
case JOptionPane.YES_OPTION :return saveFile();
case JOptionPane.NO_OPTION : return true;
case JOptionPane.CANCEL_OPTION : default: return false;
}
}

void updateTitle(){
String title;
if (currentFileName == null){
title="未命名文件";
}else{
title=currentFileName;
}
if (saveNeeded==true){
title="*"+title;
}
title="文本编辑器-"+title;
this.setTitle(title);
}

boolean saveFile(){
if (currentFileName == null){
return saveAsFile();
}
try{
File file = new File (currentFileName);
FileWriter out = new FileWriter(file);
String text = jTextArea1.getText();
out.write(text);
out.close();
this.saveNeeded = false;
updateTitle();
return true;
}
catch (IOException e){
statusBar.setText("存储"+currentFileName+"出错") ;
}
return false;
}

boolean saveAsFile(){
this.repaint() ;
if (JFileChooser.APPROVE_OPTION == jFileChooser1.showSaveDialog(this)) {
currentFileName = jFileChooser1.getSelectedFile() .getPath() ;
this.repaint() ;
return saveFile();
}else{
this.repaint() ;
return false;
}
}

public void jMenuFileExit_actionPerformed(ActionEvent e) {
if(!okToAbandon()){
return;
}
System.exit(0);
}
//Help | About action performed
public void jMenuHelpAbout_actionPerformed(ActionEvent e) {
TextEditorFrame_AboutBox dlg = new TextEditorFrame_AboutBox(this);
Dimension dlgSize = dlg.getPreferredSize();
Dimension frmSize = getSize();
Point loc = getLocation();
dlg.setLocation((frmSize.width - dlgSize.width) / 2 + loc.x, (frmSize.height - dlgSize.height) / 2 + loc.y);
dlg.setModal(true);
dlg.pack();
dlg.show();
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
super.processWindowEvent(e);
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
jMenuFileExit_actionPerformed(null);
}
}

void jMenuFileNew_actionPerformed(ActionEvent e) {
if(okToAbandon()){
jTextArea1.setText("");
currentFileName = null;
saveNeeded = false;
updateTitle();
}
}

void jMenuFileOpen_actionPerformed(ActionEvent e) {
openFile();
}

void jMenuFileSave_actionPerformed(ActionEvent e) {
saveFile();
}

void jMenuFileSaveas_actionPerformed(ActionEvent e) {
saveAsFile();
}

void jMenuEditCopy_actionPerformed(ActionEvent e) {
String selText=jTextArea1.getSelectedText() ;
if(selText !=null){
StringSelection selection=new StringSelection(selText);
sysClipboard.setContents(selection,null) ;
}
}

void jMenuEditCut_actionPerformed(ActionEvent e) {
String selText=jTextArea1.getSelectedText() ;
if(selText !=null){
StringSelection selection=new StringSelection(selText);
sysClipboard.setContents(selection,null) ;
jTextArea1.replaceSelection("") ;
}
}

void jMenuEditPaste_actionPerformed(ActionEvent e) {
Transferable content=sysClipboard.getContents(this) ;
if(content==null) return;
try{
String text=(String)(content.getTransferData(DataFlavor.stringFlavor ) );
jTextArea1.replaceSelection(text) ;
}catch(Exception ex){
}
}



void jMenuEditColor_actionPerformed(ActionEvent e) {
Color color = JColorChooser.showDialog(this,
"Foreground Color",jTextArea1.getForeground());
if (color != null) {
jTextArea1.setForeground(color);
}
this.repaint();
}

void jMenuEditBColor_actionPerformed(ActionEvent e) {
Color color = JColorChooser.showDialog(this,
"Background Color",jTextArea1.getBackground());
if (color != null) {
jTextArea1.setBackground(color);
}
this.repaint();
}

void document1_changedUpdate(DocumentEvent documentEvent) {
saveNeeded=true;
updateTitle();
}

void document1_insertUpdate(DocumentEvent documentEvent) {
saveNeeded=true;
updateTitle();
}

void document1_removeUpdate(DocumentEvent documentEvent) {
saveNeeded=true;
updateTitle();
}

void document1_undoableEditHappened(UndoableEditEvent e) {
edit.addEdit(e.getEdit());
}

void jMenuEditUndo_actionPerformed(ActionEvent e) {
edit.undo();
}

void jMenuEditRedo_actionPerformed(ActionEvent e) {
edit.redo();
}

void jMenuEdit_focusGained(FocusEvent e) {
boolean selFlag = false;
if (jTextArea1.getSelectedText() != null) {
selFlag = true;
}
jMenuEditCopy.setEnabled(selFlag);
jMenuEditCut.setEnabled(selFlag);
boolean copyedFlag = false;
if (sysClipboard.getContents(this) != null) {
copyedFlag = true;
}
jMenuEditPaste.setEnabled(copyedFlag);
jMenuEditUndo.setEnabled(edit.canUndo() );
jMenuEditRedo.setEnabled(edit.canRedo() );
}
}


class TextEditorFrame_jMenuHelpAbout_ActionAdapter implements ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuHelpAbout_ActionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuHelpAbout_actionPerformed(e);
}
}

class TextEditorFrame_jMenuFileNew_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuFileNew_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuFileNew_actionPerformed(e);
}
}

class TextEditorFrame_jMenuFileOpen_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuFileOpen_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuFileOpen_actionPerformed(e);
}
}

class TextEditorFrame_jMenuFileSave_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuFileSave_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuFileSave_actionPerformed(e);
}
}

class TextEditorFrame_jMenuFileSaveas_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuFileSaveas_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuFileSaveas_actionPerformed(e);
}
}

class TextEditorFrame_jMenuFileExit_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuFileExit_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuFileExit_actionPerformed(e);
}
}

class TextEditorFrame_jMenuEditCopy_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuEditCopy_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuEditCopy_actionPerformed(e);
}
}

class TextEditorFrame_jMenuEditCut_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuEditCut_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuEditCut_actionPerformed(e);
}
}

class TextEditorFrame_jMenuEditPaste_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuEditPaste_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuEditPaste_actionPerformed(e);
}
}


class TextEditorFrame_jMenuEditColor_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuEditColor_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuEditColor_actionPerformed(e);
}
}

class TextEditorFrame_jMenuEditBColor_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuEditBColor_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuEditBColor_actionPerformed(e);
}
}

class TextEditorFrame_document1_documentAdapter implements javax.swing.event.DocumentListener {
TextEditorFrame adaptee;

TextEditorFrame_document1_documentAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void insertUpdate(DocumentEvent documentEvent) {
adaptee.document1_insertUpdate(documentEvent);
}
public void removeUpdate(DocumentEvent documentEvent) {
adaptee.document1_removeUpdate(documentEvent);
}
public void changedUpdate(DocumentEvent documentEvent) {
adaptee.document1_changedUpdate(documentEvent);
}
}

class TextEditorFrame_document1_undoableEditAdapter implements javax.swing.event.UndoableEditListener {
TextEditorFrame adaptee;

TextEditorFrame_document1_undoableEditAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void undoableEditHappened(UndoableEditEvent e) {
adaptee.document1_undoableEditHappened(e);
}
}

class TextEditorFrame_jMenuEditUndo_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuEditUndo_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuEditUndo_actionPerformed(e);
}
}

class TextEditorFrame_jMenuEditRedo_actionAdapter implements java.awt.event.ActionListener {
TextEditorFrame adaptee;

TextEditorFrame_jMenuEditRedo_actionAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jMenuEditRedo_actionPerformed(e);
}
}

class TextEditorFrame_jMenuEdit_focusAdapter extends java.awt.event.FocusAdapter {
TextEditorFrame adaptee;

TextEditorFrame_jMenuEdit_focusAdapter(TextEditorFrame adaptee) {
this.adaptee = adaptee;
}
public void focusGained(FocusEvent e) {
adaptee.jMenuEdit_focusGained(e);
}
}


package texteditor;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

/**
* <p>Title: 文本编辑器</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: bjut</p>
* @author haofeng
* @version 1.0
*/

public class TextEditorFrame_AboutBox extends JDialog implements ActionListener {

JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
JPanel insetsPanel1 = new JPanel();
JPanel insetsPanel2 = new JPanel();
JPanel insetsPanel3 = new JPanel();
JButton button1 = new JButton();
JLabel imageLabel = new JLabel();
JLabel label1 = new JLabel();
JLabel label2 = new JLabel();
JLabel label3 = new JLabel();
JLabel label4 = new JLabel();
ImageIcon image1 = new ImageIcon();
BorderLayout borderLayout1 = new BorderLayout();
BorderLayout borderLayout2 = new BorderLayout();
FlowLayout flowLayout1 = new FlowLayout();
GridLayout gridLayout1 = new GridLayout();
String product = "\u6587\u672c\u7f16\u8f91\u5668";
String version = "1.0";
String copyright = "Copyright (c) 2003";
String comments = "";
public TextEditorFrame_AboutBox(Frame parent) {
super(parent);
enableEvents(AWTEvent.WINDOW_EVENT_MASK);
try {
jbInit();
}
catch(Exception e) {
e.printStackTrace();
}
}
//Component initialization
private void jbInit() throws Exception {
image1 = new ImageIcon(texteditor.TextEditorFrame.class.getResource("about.png"));
imageLabel.setIcon(image1);
this.setTitle("About");
panel1.setLayout(borderLayout1);
panel2.setLayout(borderLayout2);
insetsPanel1.setLayout(flowLayout1);
insetsPanel2.setLayout(flowLayout1);
insetsPanel2.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
gridLayout1.setRows(4);
gridLayout1.setColumns(1);
label1.setText(product);
label2.setText(version);
label3.setText(copyright);
label4.setText(comments);
insetsPanel3.setLayout(gridLayout1);
insetsPanel3.setBorder(BorderFactory.createEmptyBorder(10, 60, 10, 10));
button1.setText("Ok");
button1.addActionListener(this);
insetsPanel2.add(imageLabel, null);
panel2.add(insetsPanel2, BorderLayout.WEST);
this.getContentPane().add(panel1, null);
insetsPanel3.add(label1, null);
insetsPanel3.add(label2, null);
insetsPanel3.add(label3, null);
insetsPanel3.add(label4, null);
panel2.add(insetsPanel3, BorderLayout.CENTER);
insetsPanel1.add(button1, null);
panel1.add(insetsPanel1, BorderLayout.SOUTH);
panel1.add(panel2, BorderLayout.NORTH);
setResizable(true);
}
//Overridden so we can exit when window is closed
protected void processWindowEvent(WindowEvent e) {
if (e.getID() == WindowEvent.WINDOW_CLOSING) {
cancel();
}
super.processWindowEvent(e);
}
//Close the dialog
void cancel() {
dispose();
}
//Close the dialog on a button event
public void actionPerformed(ActionEvent e) {
if (e.getSource() == button1) {
cancel();
}
}
}

package texteditor;

import javax.swing.UIManager;
import java.awt.*;

/**
* <p>Title: 文本编辑器</p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: bjut</p>
* @author haofeng
* @version 1.0
*/

public class TextEditor {
boolean packFrame = false;

//Construct the application
public TextEditor() {
TextEditorFrame frame = new TextEditorFrame();
//Validate frames that have preset sizes
//Pack frames that have useful preferred size info, e.g. from their layout
if (packFrame) {
frame.pack();
}
else {
frame.validate();
}
//Center the window
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize = frame.getSize();
if (frameSize.height > screenSize.height) {
frameSize.height = screenSize.height;
}
if (frameSize.width > screenSize.width) {
frameSize.width = screenSize.width;
}
frame.setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
frame.setVisible(true);
}
//Main method
public static void main(String[] args) {
try {
UIManager.setLookAndFeel("javax.swing.plaf.metal.MetalLookAndFeel");
}
catch(Exception e) {
e.printStackTrace();
}
new TextEditor();
}
}
回复

使用道具 举报

发表于 2004-1-21 13:17:46 | 显示全部楼层
不如把Thinking in java发上来。呵呵。
回复

使用道具 举报

 楼主| 发表于 2004-1-21 15:13:29 | 显示全部楼层
不如把Thinking in java发上来。呵呵。
_________________



:-)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-9 00:45 , Processed in 0.043406 second(s), 13 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表