入门者的作业题

tuxw 2005-04-18 11:55:13
用了N多年的C++,一直听说JAVA很热门,但一直没机会进入。到现在连JVM、JDK、J2ME、J2SE这些名词都区分不清楚。
今天一MM要我帮她做一JAVA作业题,偶说了不会JAVA,但经不住MM的软磨,答上网找找看。

=================================================
题目倒是简单的很,可是允我这个JAVA知识几近零的人来说还是很难:
做一个类似记事本的应用程序,有一“文件”菜单,下面有“新建”、“打开”、“保存”、“退出”四个选项。能处理简单的TXT文件即可。
指定要用JC环境,还说一个星期就要,晕死了,都怪以前给她做C作业把她惯坏了。
=================================================

老天,JC是什么东东我都不知道呢。
Google了一个多小时的教程,总算明白了JC、JB都是集成环境,按照教程首先下了 JDK1.4.2 装上了,又找了个 JCreater 3.5 试用版装上了。

集成环境就是好啊,不懂也可以生成一个样板项目,编译运行,窗口倒是出来了,File菜单也有了,不过只有一项 Exit。
于是打开 MyProject1Frame 看看,由于已经有了个 Exit 的菜单项,于是依样画葫芦,给加进了 New、Open、Save 三个项,编译看看,界面现在倒是有了。

可是现在是个空架子,我不知道该怎样实现 New、Open、Save 的功能,JAVA 里有没有类似 MFC 的公共对话框呀?试了半天没试出来,还有怎样接收键盘输入的字符?

请大家推荐一本适我目前情况、可以下载的入门书,或者哪个好心的兄弟给直接做出来,感激不尽啊
...全文
130 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
hawaii_wx 2005-04-19
  • 打赏
  • 举报
回复
thinking in java这本书不错,大师写的
http://java.4kiki.net/有中文版的下
lanleer 2005-04-19
  • 打赏
  • 举报
回复
别人的拿来贴一下


/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Company: </p>
* @author not attributable
* @version 1.0
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;

public class tj {
String title="ERROR MESSAGE";
int type=JOptionPane.ERROR_MESSAGE;
public tj() {
final JFrame frame = new JFrame("My Edit");
final JTextArea text=new JTextArea();

frame.setSize(600, 500);
frame.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}});
JPanel panel=new JPanel();
panel.setLayout(new GridLayout(1,1));
panel.add(new JScrollPane(text));
frame.getContentPane().add(panel);
JMenuBar Mbar = new JMenuBar();
frame.setJMenuBar(Mbar);
JMenu jfile = new JMenu("File");
JMenu jedit = new JMenu("Edit");
JMenu jhelp = new JMenu("Help");
Mbar.add(jfile);
Mbar.add(jedit);
Mbar.add(jhelp);
JMenuItem jnew = new JMenuItem("New");
jnew.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.setText(" ");
}});
jnew.setMnemonic('N');
jnew.setAccelerator( KeyStroke.getKeyStroke('N',java.awt.Event.CTRL_MASK,true));
JMenuItem jopen = new JMenuItem("Open");
jopen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser openfile=new JFileChooser();
openfile.setDialogTitle("open file");
openfile.setApproveButtonText("open");
openfile.showOpenDialog(frame);
File file=openfile.getSelectedFile();
FileInputStream inputfile=null;
String message="The file not Found";
try{
inputfile=new FileInputStream(file);
}
catch(FileNotFoundException fe)
{
JOptionPane.showMessageDialog(frame,message,title,type);
}
int readbytes;
String message1="read file error";
try{
while((readbytes=inputfile.read())!=-1)
{
text.append(String.valueOf((char)readbytes));
}
}
catch(IOException ioe)
{
JOptionPane.showMessageDialog(frame,message1,title,type);
}
String closemessage="close stream error";
try{
inputfile.close();
}
catch(IOException ioe)
{
JOptionPane.showMessageDialog(frame,closemessage,title,type);
}
}});
jopen.setMnemonic('O');
jopen.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK,true));
JMenuItem jsave = new JMenuItem("Save");
jsave.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser savefile=new JFileChooser();
savefile.setApproveButtonText("save");
savefile.setDialogTitle("save file");
savefile.showSaveDialog(frame);
File filesa=savefile.getSelectedFile();
String messagef="File not Found";
FileOutputStream outputfile=null;
try{
outputfile=new FileOutputStream(filesa);
}
catch(FileNotFoundException fe)
{
JOptionPane.showMessageDialog(frame,messagef,title,type);
}
String filecontent=text.getText();
String wrmessage="write error";
try
{
outputfile.write(filecontent.getBytes());
}
catch(IOException ioe)
{
JOptionPane.showMessageDialog(frame,wrmessage,title,type);
}
String cmessage="close stream error";
try{
outputfile.close();
}
catch(IOException ioe)
{
JOptionPane.showMessageDialog(frame,cmessage,title,type);
}
}});
jsave.setMnemonic('S');
jsave.setAccelerator(KeyStroke.getKeyStroke('S',java.awt.Event.CTRL_MASK,true));
JMenuItem jquite = new JMenuItem("Quite");
jquite.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}});
jquite.setMnemonic('Q');
jquite.setAccelerator(KeyStroke.getKeyStroke('Q',java.awt.Event.CTRL_MASK,true));
JMenuItem jfind = new JMenuItem("Find");
jfind.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){

}});
jfind.setMnemonic('F');
jfind.setAccelerator(KeyStroke.getKeyStroke('F',java.awt.Event.CTRL_MASK,true));
JMenuItem jcut = new JMenuItem("Cut");
jcut.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.cut();
}});
jcut.setMnemonic('C');
jcut.setAccelerator(KeyStroke.getKeyStroke('C',java.awt.Event.CTRL_MASK,true));
JMenuItem jcopy = new JMenuItem("Copy");
jcopy.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.copy();
}});
jcopy.setMnemonic('o');
jcopy.setAccelerator(KeyStroke.getKeyStroke('O',java.awt.Event.CTRL_MASK,true));
JMenuItem jpaste = new JMenuItem("Paste");
jpaste.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.paste();
}});
jpaste.setMnemonic('P');
jpaste.setAccelerator(KeyStroke.getKeyStroke('P',java.awt.Event.CTRL_MASK,true));
JMenuItem jiami = new JMenuItem("Jiami");
jiami.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){

}});
JMenuItem jabout = new JMenuItem("About");
jabout.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
int type=JOptionPane.INFORMATION_MESSAGE;
String title="About";
String message="The software is writed by Yangwencheng";
JOptionPane.showMessageDialog(frame,message,title,type);
}});
jfile.add(jnew);
jfile.add(jopen);
jfile.add(jsave);
jfile.addSeparator();
jfile.add(jquite);
jedit.add(jcut);
jedit.add(jcopy);
jedit.add(jpaste);
jedit.add(jfind);
jedit.add(jiami);
jhelp.add(jabout);
frame.setVisible(true);
}
public static void main(String[] args) {
tj tj1 = new tj();
}

}

tuxw 2005-04-19
  • 打赏
  • 举报
回复
帖子掉下去了,先结了
sky1123 2005-04-19
  • 打赏
  • 举报
回复
去SUN的官方网站下载java的documentation,http://java.sun.com/docs/index.html。里面对每个API有说明。
tuxw 2005-04-19
  • 打赏
  • 举报
回复
还有一个问题:我怎么知道JAVA里面有 JFrame、JTextArea、JPanel 等等,在哪一方面的书里有介绍?谢谢大家
tuxw 2005-04-19
  • 打赏
  • 举报
回复
感谢上面的兄弟呀,lanleer(三分之一理想)给出的代码我调试了,几下就通过了,功能比我要求的还要多呀,于是删除一些代码,改了改文本显示(写代码的兄弟不要怪我呀),作业算是完成了。

JAVA 真是神奇呀,这么一点代码,就有了图形界面、菜单、快捷键、文件操作功能,真是适合做快速开发。我想借这个机会走进JAVA,我会看看 thinking in java,曾经读过 thinking in C++,是一本比较好理解的书。以后学习的过程中,会碰到更多的问题,还望大家不吝赐教哈

现在就有几点不明之处请大家指教:

① 最前面的几行 import 是不是导入的JAVA 库,是否和C中的 include 类似?

② 这个程序现在打开其它编辑器生成的含中文字符的文件时是乱码,但它自己保存了文件中含有中文字符的话可以正确打开

③ 怎么样使这个程序可以脱离JC环境独立运行?我从Google了解到可以将程序打包后独立运行,但没有找到找包的方法

④ 大家用JAVA编码时常用的缩进习惯是怎么的?JC生成的代码缩进习惯不太统一,看起来很不舒服
有这样的
if (...) {
}
也有这样的
if (...)
{
}

我个人比较喜欢后一种风格,因为看起来很清晰,最受不了的是这样的
if(...) {
if( ...)
}}

wjvonline 2005-04-19
  • 打赏
  • 举报
回复
会C++,那看thinking in java应该没问题,不过象你这样急着做个东西倒没必要去看,随便抓本书,再看看API吧,去这里找找看或许有你要的 http://www.javaresearch.org

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧