当前位置:编程学习 > JAVA >>

JAVA编程问题~~小弟刚入门,是菜鸟~

制作一个文本文件阅读器,文件菜单设置打开和退出命令,可以打开本地磁盘上文本文件,并将文件内容显示到文本框中,文本框不能编辑,退出命令能够退出程序
答案:回答你这道问题时,我也学到不少知识,是刚开始学习java Swing
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.swing.*;

public class 易做图Notepad {
static final int WIDTH=700;
static final int HEIGHT=400;


/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
final JFrame frame=new JFrame("记事本");
Toolkit kit =Toolkit.getDefaultToolkit();
Dimension dimension=kit.getScreenSize();
int width=dimension.width;
int height=dimension.height;
int x=(width-WIDTH)/2;
int y=(height-HEIGHT)/2;
frame.setLocation(x, y);
frame.setSize(WIDTH, HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);



JMenuBar menuBar=new JMenuBar();
frame.setJMenuBar(menuBar);
JMenu menu=new JMenu("文件(&H)");
JMenuItem item1=new JMenuItem("打开(&O)");
JMenuItem item2=new JMenuItem("退出(&E)");
menuBar.add(menu);
menu.add(item1);
menu.addSeparator();
menu.add(item2);

JPanel panel=new JPanel();
frame.setContentPane(panel);
panel.setLayout(new BorderLayout());
final JTextArea textArea=new JTextArea();
textArea.setFont(new Font("宋体", 12, 16));
panel.add(textArea);

final JFileChooser fileChooser=new JFileChooser();



item2.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

System.exit(0);


}
});

item1.addActionListener(new ActionListener() {


@Override
public void actionPerformed(ActionEvent e) {

// TODO Auto-generated method stub

FileInputStream fileInputStream=null;

File file=null;

int result;


fileChooser.setApproveButtonText("确定");

fileChooser.setDialogTitle("打开文件");

result=fileChooser.showOpenDialog(frame);

textArea.setText("");


if(result==JFileChooser.APPROVE_OPTION)

{

file=fileChooser.getSelectedFile();

}
else if(result==JFileChooser.CANCEL_OPTION)

{

JOptionPane.showMessageDialog(null, "你没有选择任何文件");

}




if (file!=null)

{

try {

fileInputStream=new FileInputStream(file);

} catch (FileNotFoundException e2) {

// TODO: handle exception

JOptionPane.showMessageDialog(null, "文件找不到");

return;

}

int readbyte;

try {

while ((readbyte=fileInputStream.read())!=-1) {

String string=String.valueOf((char)readbyte);

String strvalue=new String(string.getBytes("ISO-8859-1"), "gb2312");

textArea.append(strvalue);

}

} catch (IOException e2) {

// TODO: handle exception

JOptionPane.showMessageDialog(null, "文件读取错误");

}

finally

{

try {

if(fileInputStream!=null)

fileInputStream.close();

} catch (IOException e3) {

// TODO: handle exception

e3.printStackTrace();

}

}


}
}
});

frame.setVisible(true);

}

}
问老师

上一个:作业,用java编写一个记事本程序,谁会啊
下一个:急救!!!!Java实现中文转Unicode码....???不用转换器哈,

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,