import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
import java.io.*;
public class jsb extends JFrame implements ItemListener{
public jsb(){
super("记事本"); //继承超类
setSize(500,300); //设置框架大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //定义单击按钮发生的情况
BorderLayout border=new BorderLayout(); //创建边框布局管理器
setLayout(border); //添加布局管理器到框架
JMenuBar MenuBar = new JMenuBar(); //新建菜单栏
JMenu MenuFile = new JMenu("文件"); //新建菜单
JMenu MenuEdit = new JMenu("编辑"); //新建菜单
JMenuItem MenuItemOpen = new JMenuItem("打开"); //新建菜单项
JMenuItem MenuItemSave = new JMenuItem("保存");
JMenuItem MenuItemCopy = new JMenuItem("复制");
JMenuItem MenuItemPaste = new JMenuItem("粘贴"); //新建菜单项 /* MenuItemOpen.addActionListener(this); //添加监听器
MenuItemSave.addActionListener(this);
MenuItemCopy.addActionListener(this);
MenuItemPaste.addActionListener(this);*/
MenuFile.add(MenuItemOpen); //在菜单中添加选项
MenuFile.add(MenuItemSave);
MenuEdit.add(MenuItemCopy);
MenuEdit.add(MenuItemPaste);
MenuBar.add(MenuFile); //添加菜单到菜单栏
MenuBar.add(MenuEdit);
add(MenuBar,BorderLayout.NORTH); //添加菜单栏到框架
JTextArea comments = new JTextArea(8,40); //创建文本区域 JScrollPane scroll = new JScrollPane(comments, //创建滚动窗格并加入文本区域
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
add(scroll,BorderLayout.CENTER); //添加滚动窗格到框架
setVisible(true); //打开框架
} public static void main(String[] arguments){
jsb lj=new jsb();
}
}
这是我写的一个记事本小程序的界面部分,如何在界面中加入用户操作?以文件菜单下的打开选项为例,怎样才能实现打开操作呢?请各位大神指点,希望能附上一段打开操作的代码让我参考一下!
import java.awt.*;
import java.awt.event.*;
import javax.swing.JOptionPane;
import java.io.*;
public class jsb extends JFrame implements ItemListener{
public jsb(){
super("记事本"); //继承超类
setSize(500,300); //设置框架大小
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //定义单击按钮发生的情况
BorderLayout border=new BorderLayout(); //创建边框布局管理器
setLayout(border); //添加布局管理器到框架
JMenuBar MenuBar = new JMenuBar(); //新建菜单栏
JMenu MenuFile = new JMenu("文件"); //新建菜单
JMenu MenuEdit = new JMenu("编辑"); //新建菜单
JMenuItem MenuItemOpen = new JMenuItem("打开"); //新建菜单项
JMenuItem MenuItemSave = new JMenuItem("保存");
JMenuItem MenuItemCopy = new JMenuItem("复制");
JMenuItem MenuItemPaste = new JMenuItem("粘贴"); //新建菜单项 /* MenuItemOpen.addActionListener(this); //添加监听器
MenuItemSave.addActionListener(this);
MenuItemCopy.addActionListener(this);
MenuItemPaste.addActionListener(this);*/
MenuFile.add(MenuItemOpen); //在菜单中添加选项
MenuFile.add(MenuItemSave);
MenuEdit.add(MenuItemCopy);
MenuEdit.add(MenuItemPaste);
MenuBar.add(MenuFile); //添加菜单到菜单栏
MenuBar.add(MenuEdit);
add(MenuBar,BorderLayout.NORTH); //添加菜单栏到框架
JTextArea comments = new JTextArea(8,40); //创建文本区域 JScrollPane scroll = new JScrollPane(comments, //创建滚动窗格并加入文本区域
JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
add(scroll,BorderLayout.CENTER); //添加滚动窗格到框架
setVisible(true); //打开框架
} public static void main(String[] arguments){
jsb lj=new jsb();
}
}
这是我写的一个记事本小程序的界面部分,如何在界面中加入用户操作?以文件菜单下的打开选项为例,怎样才能实现打开操作呢?请各位大神指点,希望能附上一段打开操作的代码让我参考一下!
package day17;import java.awt.BorderLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;public class JiShiBen implements ActionListener {
String wenben = "";
JFrame jf = new JFrame("记事本");
JTextArea jta = new JTextArea();
JFileChooser jfc = new JFileChooser();
String lujing = null;
public JiShiBen() { JMenuBar jmb = new JMenuBar();
String[] jmlab = { "文件", "编辑", "帮助" };
String[][] jmilab = { { "新建", "打开", "", "保存", "另存", "", "退出" },
{ "撤销", "", "剪切", "复制", "粘贴", "", "删除", "全选", "", "查找", "替换" },
{ "版本" } };
for (int i = 0; i < jmlab.length; i++) {
JMenu jm = new JMenu(jmlab[i]);
jmb.add(jm);
for (int j = 0; j < jmilab[i].length; j++) {
if ("".equals(jmilab[i][j])) {
jm.addSeparator();
} else {
JMenuItem jmi = new JMenuItem(jmilab[i][j]);
jmi.addActionListener(this);
jm.add(jmi);
}
}
}
jta.setFont(new Font("宋体",Font.BOLD,15));
JScrollPane jsp = new JScrollPane(jta);
jf.add(jsp, BorderLayout.CENTER);
jf.setJMenuBar(jmb);
jf.setLocation(200, 200);
jf.setSize(512, 384);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} public void actionPerformed(ActionEvent e) {
String comm = e.getActionCommand();
if ("新建".equals(comm)) {
jfc.setDialogTitle("新建");
jfc.showDialog(jf, "新建");
if (jfc.getSelectedFile()!=null) {
jta.setText("");
lujing = jfc.getSelectedFile().toString();
}
if (lujing!=null) {
try {
FileOutputStream fos = new FileOutputStream(lujing);
fos.write("".getBytes());
fos.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
} else if ("打开".equals(comm)) {
jfc.setDialogTitle("打开");
int op = jfc.showOpenDialog(jf);
if (op == JFileChooser.APPROVE_OPTION) {
File f = jfc.getSelectedFile();
lujing = f.toString();
String result = "";
try {
FileInputStream fis = new FileInputStream(f);
byte[] b = new byte[1024];
while (true) {
int num = fis.read(b);
if (num == -1) {
break;
}
result = result + new String(b, 0, num);
}
fis.close();
} catch (Exception e1) {
e1.printStackTrace();
}
jta.setText(result);
}
} else if ("保存".equals(comm)) {
if (lujing == null) {
jfc.setDialogTitle("保存");
jfc.showSaveDialog(jf);
wenben = jta.getText();
if (jfc.getSelectedFile()!=null) {
try {
FileOutputStream fos = new FileOutputStream(jfc
.getSelectedFile());
fos.write(wenben.getBytes());
fos.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
} else {
wenben = jta.getText();
try {
FileOutputStream fos = new FileOutputStream(lujing);
fos.write(wenben.getBytes());
fos.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
} else if ("另存".equals(comm)) {
jfc.setDialogTitle("另存为");
jfc.showSaveDialog(jf);
if (jfc.getSelectedFile()!=null) {
try {
FileOutputStream fos = new FileOutputStream(jfc
.getSelectedFile());
fos.write(jta.getText().getBytes());
fos.close();
} catch (Exception e1) {
e1.printStackTrace();
}
}
} else if ("退出".equals(comm)) {
System.exit(0);
} else if ("撤销".equals(comm)) {
jta.setText(wenben);
} else if ("剪切".equals(comm)) {
wenben = jta.getText();
jta.cut();
} else if ("复制".equals(comm)) {
jta.copy();
} else if ("粘贴".equals(comm)) {
wenben = jta.getText();
jta.paste();
} else if ("删除".equals(comm)) {
wenben = jta.getText();
jta.replaceSelection("");
} else if ("全选".equals(comm)) {
jta.selectAll();
} else if ("查找".equals(comm)) {
String s = JOptionPane.showInputDialog(jf, "查找内容:",
jta.getSelectedText()).trim();
String temp = jta.getText();
for (int i = 0; i < temp.length(); i++) {
int j = temp.indexOf(s, i);
if (j == -1) {
break;
} else {
jta.select(j, j + s.length());
int op = JOptionPane.showConfirmDialog(jf, "是否继续查找下一个?",
"查找", JOptionPane.YES_NO_OPTION);
if (op == JOptionPane.NO_OPTION) {
break;
}
}
i = j;
}
} else if ("替换".equals(comm)) {
String s1 = JOptionPane.showInputDialog(jf, "被替换内容:",
jta.getSelectedText());
String s2=null;
if (s1!=null) {
s2 = JOptionPane.showInputDialog(jf, "替换为:", jta
.getSelectedText());
}
int op=0;
if (s2!=null) {
op = JOptionPane.showConfirmDialog(jf,
"是 替换全部匹配结果\n否 进入逐个替换状态", "替换",
JOptionPane.YES_NO_OPTION);
}
if (op == JOptionPane.NO_OPTION) {
for (int i = 0; i < jta.getText().length(); i++) {
String temp = jta.getText();
int j = temp.indexOf(s1, i);
if (j == -1) {
break;
} else {
i = j;
jta.select(j, j + s1.length());
int op1 = JOptionPane
.showConfirmDialog(
jf,
"是 替换当前匹配内容,并查找下一个\n" +
"否 不替换当前内容,继续查找下一个\n" +
"取消 退出替换状态",
"替换", JOptionPane.YES_NO_CANCEL_OPTION);
if (op1 == JOptionPane.NO_OPTION) {
continue;
} else if (op1 == JOptionPane.CANCEL_OPTION) {
break;
} else {
wenben = jta.getText();
jta.replaceSelection(s2);
}
}
}
} else {
wenben = jta.getText();
String temp = jta.getText();
for (int i = 0; i < temp.length(); i++) {
int j = temp.indexOf(s1, i);
if (j == -1) {
break;
} else {
jta.select(j, j + s1.length());
jta.replaceSelection(s2);
}
i = j;
}
}
} else {
JOptionPane.showMessageDialog(jf, "当前版本1.1", "版本",
JOptionPane.INFORMATION_MESSAGE);
}
} public static void main(String[] args) {
new JiShiBen();
}}这是我参加培训时交的作业,虽然很烂,但我一直留着。