package src.temp;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.*;import javax.imageio.ImageReader;
import javax.imageio.ImageWriter;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.JToolBar;
import javax.swing.ScrollPaneConstants;
import javax.swing.filechooser.FileNameExtensionFilter;
class NotepadFrame extends JFrame {
private Color color=Color.black;
private static File file=null;
private JFrame f;
private static JTextArea text=new JTextArea(0,16);//JTextArea显示纯文本的多行区域
private JLabel font,size;
private JButton yes,exit;
JPanel p1=new JPanel(new GridLayout(1,4)),
p2=new JPanel(),
p3=new JPanel();
private JPanel c=new JPanel(new BorderLayout());
yes=new JButton("确定");
exit=new JButton("退出");
public static JLabel show=new JLabel("永远的java");
f=new JFrame("字体选择");
font=new JLabel("字体");
size=new JLabel("字号");
JComboBox cfont=new JComboBox();
JComboBox csize=new JComboBox();
public static String s2="宋体";
public static String[] sz1={"10","16","24","30","32","36"},
sz2={"宋体","黑体","幼圆","隶书","楷体_GB2312"};
private JFrame frame = new JFrame();
public static int style=Font.PLAIN, Size=15;//普通字体 NotepadFrame()
{
super("simple word!");
JScrollPane w=new JScrollPane(text,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
c.add(w,BorderLayout.CENTER);
getContentPane().add(c);
this.setSize(800,600);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initTextPane();
initMenu();
initAboutDialog();
//initToolBar();
}
private void initAboutDialog() {
about.getContentPane().add(new JLabel("simple editorV1.0"));
about.setModal(true);
about.setSize(100,50);
}
void initTextPane(){ ///将文本框放入有滚动对象,并加入到Frame中
getContentPane().add(new JScrollPane(text));
}
JFileChooser filechooser=new JFileChooser();
JColorChooser colorchooser=new JColorChooser();
JDialog about=new JDialog(this);
JMenuBar menubar=new JMenuBar();
Graphics pictures;
private JMenu[] menus=new JMenu[]{
new JMenu("文件"),
new JMenu("编辑"),
new JMenu("帮助"),
new JMenu("插入"),
new JMenu("格式"),
new JMenu("工具"),
new JMenu("表格"),
}; JMenuItem menuitems[][]=new JMenuItem[][]{{
new JMenuItem("New"),
new JMenuItem("Open..."),
new JMenuItem("Save..."),
new JMenuItem("Exit")},{
new JMenuItem("Copy"),
new JMenuItem("Cut"),
new JMenuItem("Paste"),
new JMenuItem("Replace"),
new JMenuItem("Color...")},{
new JMenuItem("About")},{
new JMenuItem("Picture"),
new JMenuItem("File")},{
new JMenuItem("字体")},{
new JMenuItem("颜色设置")},{
new JMenu("插入"),
new JMenuItem("绘制表格")
}
};
void initMenu(){
text.setLineWrap(true);//换行
JMenuItem branch=new JMenuItem("表格");
menuitems[6][0].add(branch);
for(int i=0;i<menus.length;i++){
menubar.add(menus[i]);
for(int j=0;j<menuitems[i].length;j++){
menus[i].add(menuitems[i][j]);
menuitems[i][j].addActionListener(action);
}
}
for(int i=0;i<sz2.length;i++)
cfont.addItem(sz2[i]);
for(int i=0;i<sz1.length;i++)
csize.addItem(sz1[i]); this.setJMenuBar(menubar);
this.setBounds(400, 300, 300, 400);
} ActionListener action=new ActionListener( ){//菜单事件处理
public void actionPerformed(ActionEvent e){
JMenuItem mi=(JMenuItem)e.getSource();
String id=mi.getText();
if(id.equals("New")){
text.setText("");
file =null;
}else if(id.equals("Open...")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
openFile();
}
}else if(id.equals("Save...")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showSaveDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
saveFile();
}
}else if(id.equals("Exit")){
System.exit(0);
}else if(id.equals("Cut")){
text.cut();
}else if(id.equals("Copy")){
text.copy();
}else if(id.equals("Paste")){
text.paste();
}else if(id.equals("Replace")){
text.replaceSelection(new String(""));//替换
}else if(id.equals("Color...")){
color=JColorChooser.showDialog(NotepadFrame.this, "", color);
text.setForeground(color);
}else if(id.equals("About")){
about.setSize(100,50);
about.show();
}else if(id.equals("Picture")){////////////////////////////////////
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
filechooser.setFileFilter(filter); int result= filechooser.showOpenDialog(NotepadFrame.this);//图像如何获得URL
if(result == JFileChooser.APPROVE_OPTION){
String name = filechooser.getSelectedFile().getPath();
ImageIcon image = new ImageIcon(name);
// setSize(image.getIconWidth()+50, image.getIconHeight()+50);
text.setText("");
text.setBackground(Color.pink);
text.insertIcon(image);
}
}else if(id.equals("file")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
openFile();
}else if(id.equals("字体")){
fontType();
}else if(id.equals("颜色设置")){
Color userColor = JColorChooser.showDialog(null, "color", Color.PINK);
text.setForeground(userColor);
}else if(e1.getSource()==yes){//按确定后,字体生效,这里为默认的
Font font=new Font(s2,style,size);
TextArea.setFont(font);
f.dispose();//用来关闭windows的method,只是让windows消失,
//但并不是让 整个object释放内 }
else if(e1.getSource()==exit){
f.dispose();
} }
};
public void fontType(){
cfont.addActionListener(this);
csize.addActionListener(this);
p1.add(font);//p1中加label字体
p1.add(cfont);//p1+下拉列表
p1.add(size);
p1.add(csize);
cfont.addItemListener(new Item());
csize.addItemListener(new Item());
p2.add(yes);
p2.add(exit);
p3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "永远的java", 2, 2));
tp.add(show);
f.getContentPane().add(typep,"North");
f.getContentPane().add(tp,"Center");
f.getContentPane().add(butp,"South");
f.setTitle("编辑字体");
f.setBounds(20,20,300,200);
f.setResizable(false);
f.setVisible(true);
} private void saveFile() { //保存文件,讲字符写入文件
try{
FileWriter fw=new FileWriter(file);
fw.write(text.getText());
fw.close();
}catch(Exception e){e.printStackTrace();}
} /*private void openFile() { //打开文件,并将字符置于文本框中
try{
FileReader fr=new FileReader(file);
int len=(int)file.length();
char[]buffer=new char[len];
fr.close();
text.setText(new String(buffer));
}catch(Exception e){e.printStackTrace();}
}*/
};
}
以上是有问题的类的代码。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.*;import javax.imageio.ImageReader;
import javax.imageio.ImageWriter;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.JToolBar;
import javax.swing.ScrollPaneConstants;
import javax.swing.filechooser.FileNameExtensionFilter;
class NotepadFrame extends JFrame {
private Color color=Color.black;
private static File file=null;
private JFrame f;
private static JTextArea text=new JTextArea(0,16);//JTextArea显示纯文本的多行区域
private JLabel font,size;
private JButton yes,exit;
JPanel p1=new JPanel(new GridLayout(1,4)),
p2=new JPanel(),
p3=new JPanel();
private JPanel c=new JPanel(new BorderLayout());
yes=new JButton("确定");
exit=new JButton("退出");
public static JLabel show=new JLabel("永远的java");
f=new JFrame("字体选择");
font=new JLabel("字体");
size=new JLabel("字号");
JComboBox cfont=new JComboBox();
JComboBox csize=new JComboBox();
public static String s2="宋体";
public static String[] sz1={"10","16","24","30","32","36"},
sz2={"宋体","黑体","幼圆","隶书","楷体_GB2312"};
private JFrame frame = new JFrame();
public static int style=Font.PLAIN, Size=15;//普通字体 NotepadFrame()
{
super("simple word!");
JScrollPane w=new JScrollPane(text,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
c.add(w,BorderLayout.CENTER);
getContentPane().add(c);
this.setSize(800,600);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initTextPane();
initMenu();
initAboutDialog();
//initToolBar();
}
private void initAboutDialog() {
about.getContentPane().add(new JLabel("simple editorV1.0"));
about.setModal(true);
about.setSize(100,50);
}
void initTextPane(){ ///将文本框放入有滚动对象,并加入到Frame中
getContentPane().add(new JScrollPane(text));
}
JFileChooser filechooser=new JFileChooser();
JColorChooser colorchooser=new JColorChooser();
JDialog about=new JDialog(this);
JMenuBar menubar=new JMenuBar();
Graphics pictures;
private JMenu[] menus=new JMenu[]{
new JMenu("文件"),
new JMenu("编辑"),
new JMenu("帮助"),
new JMenu("插入"),
new JMenu("格式"),
new JMenu("工具"),
new JMenu("表格"),
}; JMenuItem menuitems[][]=new JMenuItem[][]{{
new JMenuItem("New"),
new JMenuItem("Open..."),
new JMenuItem("Save..."),
new JMenuItem("Exit")},{
new JMenuItem("Copy"),
new JMenuItem("Cut"),
new JMenuItem("Paste"),
new JMenuItem("Replace"),
new JMenuItem("Color...")},{
new JMenuItem("About")},{
new JMenuItem("Picture"),
new JMenuItem("File")},{
new JMenuItem("字体")},{
new JMenuItem("颜色设置")},{
new JMenu("插入"),
new JMenuItem("绘制表格")
}
};
void initMenu(){
text.setLineWrap(true);//换行
JMenuItem branch=new JMenuItem("表格");
menuitems[6][0].add(branch);
for(int i=0;i<menus.length;i++){
menubar.add(menus[i]);
for(int j=0;j<menuitems[i].length;j++){
menus[i].add(menuitems[i][j]);
menuitems[i][j].addActionListener(action);
}
}
for(int i=0;i<sz2.length;i++)
cfont.addItem(sz2[i]);
for(int i=0;i<sz1.length;i++)
csize.addItem(sz1[i]); this.setJMenuBar(menubar);
this.setBounds(400, 300, 300, 400);
} ActionListener action=new ActionListener( ){//菜单事件处理
public void actionPerformed(ActionEvent e){
JMenuItem mi=(JMenuItem)e.getSource();
String id=mi.getText();
if(id.equals("New")){
text.setText("");
file =null;
}else if(id.equals("Open...")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
openFile();
}
}else if(id.equals("Save...")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showSaveDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
saveFile();
}
}else if(id.equals("Exit")){
System.exit(0);
}else if(id.equals("Cut")){
text.cut();
}else if(id.equals("Copy")){
text.copy();
}else if(id.equals("Paste")){
text.paste();
}else if(id.equals("Replace")){
text.replaceSelection(new String(""));//替换
}else if(id.equals("Color...")){
color=JColorChooser.showDialog(NotepadFrame.this, "", color);
text.setForeground(color);
}else if(id.equals("About")){
about.setSize(100,50);
about.show();
}else if(id.equals("Picture")){////////////////////////////////////
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
filechooser.setFileFilter(filter); int result= filechooser.showOpenDialog(NotepadFrame.this);//图像如何获得URL
if(result == JFileChooser.APPROVE_OPTION){
String name = filechooser.getSelectedFile().getPath();
ImageIcon image = new ImageIcon(name);
// setSize(image.getIconWidth()+50, image.getIconHeight()+50);
text.setText("");
text.setBackground(Color.pink);
text.insertIcon(image);
}
}else if(id.equals("file")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
openFile();
}else if(id.equals("字体")){
fontType();
}else if(id.equals("颜色设置")){
Color userColor = JColorChooser.showDialog(null, "color", Color.PINK);
text.setForeground(userColor);
}else if(e1.getSource()==yes){//按确定后,字体生效,这里为默认的
Font font=new Font(s2,style,size);
TextArea.setFont(font);
f.dispose();//用来关闭windows的method,只是让windows消失,
//但并不是让 整个object释放内 }
else if(e1.getSource()==exit){
f.dispose();
} }
};
public void fontType(){
cfont.addActionListener(this);
csize.addActionListener(this);
p1.add(font);//p1中加label字体
p1.add(cfont);//p1+下拉列表
p1.add(size);
p1.add(csize);
cfont.addItemListener(new Item());
csize.addItemListener(new Item());
p2.add(yes);
p2.add(exit);
p3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "永远的java", 2, 2));
tp.add(show);
f.getContentPane().add(typep,"North");
f.getContentPane().add(tp,"Center");
f.getContentPane().add(butp,"South");
f.setTitle("编辑字体");
f.setBounds(20,20,300,200);
f.setResizable(false);
f.setVisible(true);
} private void saveFile() { //保存文件,讲字符写入文件
try{
FileWriter fw=new FileWriter(file);
fw.write(text.getText());
fw.close();
}catch(Exception e){e.printStackTrace();}
} /*private void openFile() { //打开文件,并将字符置于文本框中
try{
FileReader fr=new FileReader(file);
int len=(int)file.length();
char[]buffer=new char[len];
fr.close();
text.setText(new String(buffer));
}catch(Exception e){e.printStackTrace();}
}*/
};
}
以上是有问题的类的代码。
解决方案 »
- swing 难道也会内分泌失调?
- 求教:kryo包处理序列化时发生java.lang.StackOverflowError错误
- JAVA(jdk1.5)连接Oracle9i用户问题??
- [求助]SQL2000 JDBC的URL问题
- 谁有SOCKET 通讯的 程序 仍个过来。。。
- 在静态上下文中不能引用非静态变量?
- 请问如何在javax.swing.JTextPane组件中显示带删除线的文字?
- 在jbuilder6中怎样实现打印报表,有源程序更好
- 下载什么版本的acrobat可以制作PDF文件,还有没有其他的制作PDF的软件.
- 请问怎么给分呢?
- JAVA JSP 怎么移动复制压缩包
- 救命 几个简单的unix命令
发的时候,点“插入代码”(第七个图标),然后把代码插到[code=Java]和[/code]之间。
package src.temp;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.*; import javax.imageio.ImageReader;
import javax.imageio.ImageWriter;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.JToolBar;
import javax.swing.ScrollPaneConstants;
import javax.swing.filechooser.FileNameExtensionFilter;
class NotepadFrame extends JFrame { private Color color=Color.black;
private static File file=null;
private JFrame f;
private static JTextArea text=new JTextArea(0,16);//JTextArea显示纯文本的多行区域
private JLabel font,size;
private JButton yes,exit;
JPanel p1=new JPanel(new GridLayout(1,4)),
p2=new JPanel(),
p3=new JPanel();
private JPanel c=new JPanel(new BorderLayout());
yes=new JButton("确定");
exit=new JButton("退出");
public static JLabel show=new JLabel("永远的java");
f=new JFrame("字体选择");
font=new JLabel("字体");
size=new JLabel("字号"); JComboBox cfont=new JComboBox();
JComboBox csize=new JComboBox();
public static String s2="宋体";
public static String[] sz1={"10","16","24","30","32","36"},
sz2={"宋体","黑体","幼圆","隶书","楷体_GB2312"};
private JFrame frame = new JFrame();
public static int style=Font.PLAIN, Size=15;//普通字体 NotepadFrame()
{
super("simple word!");
JScrollPane w=new JScrollPane(text,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
c.add(w,BorderLayout.CENTER);
getContentPane().add(c);
this.setSize(800,600);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initTextPane();
initMenu();
initAboutDialog();
//initToolBar();
}
private void initAboutDialog() {
about.getContentPane().add(new JLabel("simple editorV1.0"));
about.setModal(true);
about.setSize(100,50);
} void initTextPane(){ ///将文本框放入有滚动对象,并加入到Frame中
getContentPane().add(new JScrollPane(text));
}
JFileChooser filechooser=new JFileChooser();
JColorChooser colorchooser=new JColorChooser();
JDialog about=new JDialog(this);
JMenuBar menubar=new JMenuBar();
Graphics pictures;
private JMenu[] menus=new JMenu[]{
new JMenu("文件"),
new JMenu("编辑"),
new JMenu("帮助"),
new JMenu("插入"),
new JMenu("格式"),
new JMenu("工具"),
new JMenu("表格"),
}; JMenuItem menuitems[][]=new JMenuItem[][]{{
new JMenuItem("New"),
new JMenuItem("Open..."),
new JMenuItem("Save..."),
new JMenuItem("Exit")},{
new JMenuItem("Copy"),
new JMenuItem("Cut"),
new JMenuItem("Paste"),
new JMenuItem("Replace"),
new JMenuItem("Color...")},{
new JMenuItem("About")},{
new JMenuItem("Picture"),
new JMenuItem("File")},{
new JMenuItem("字体")},{
new JMenuItem("颜色设置")},{
new JMenu("插入"),
new JMenuItem("绘制表格")
}
}; void initMenu(){
text.setLineWrap(true);//换行
JMenuItem branch=new JMenuItem("表格");
menuitems[6][0].add(branch);
for(int i=0;i <menus.length;i++){
menubar.add(menus[i]);
for(int j=0;j <menuitems[i].length;j++){
menus[i].add(menuitems[i][j]);
menuitems[i][j].addActionListener(action);
} }
for(int i=0;i <sz2.length;i++)
cfont.addItem(sz2[i]);
for(int i=0;i <sz1.length;i++)
csize.addItem(sz1[i]); this.setJMenuBar(menubar);
this.setBounds(400, 300, 300, 400);
} ActionListener action=new ActionListener( ){//菜单事件处理
public void actionPerformed(ActionEvent e){
JMenuItem mi=(JMenuItem)e.getSource();
String id=mi.getText();
if(id.equals("New")){
text.setText("");
file =null;
}else if(id.equals("Open...")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
openFile();
}
}else if(id.equals("Save...")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showSaveDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
saveFile();
}
}else if(id.equals("Exit")){
System.exit(0);
}else if(id.equals("Cut")){
text.cut();
}else if(id.equals("Copy")){
text.copy();
}else if(id.equals("Paste")){
text.paste();
}else if(id.equals("Replace")){
text.replaceSelection(new String(""));//替换
}else if(id.equals("Color...")){
color=JColorChooser.showDialog(NotepadFrame.this, "", color);
text.setForeground(color);
}else if(id.equals("About")){
about.setSize(100,50);
about.show();
}else if(id.equals("Picture")){////////////////////////////////////
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
filechooser.setFileFilter(filter); int result= filechooser.showOpenDialog(NotepadFrame.this);//图像如何获得URL
if(result == JFileChooser.APPROVE_OPTION){
String name = filechooser.getSelectedFile().getPath();
ImageIcon image = new ImageIcon(name);
// setSize(image.getIconWidth()+50, image.getIconHeight()+50);
text.setText("");
text.setBackground(Color.pink);
text.insertIcon(image);
} }else if(id.equals("file")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
openFile();
}else if(id.equals("字体")){
fontType();
}else if(id.equals("颜色设置")){
Color userColor = JColorChooser.showDialog(null, "color", Color.PINK);
text.setForeground(userColor);
}else if(e1.getSource()==yes){//按确定后,字体生效,这里为默认的
Font font=new Font(s2,style,size);
TextArea.setFont(font);
f.dispose();//用来关闭windows的method,只是让windows消失,
//但并不是让 整个object释放内 }
else if(e1.getSource()==exit){
f.dispose();
} }
};
public void fontType(){
cfont.addActionListener(this);
csize.addActionListener(this);
p1.add(font);//p1中加label字体
p1.add(cfont);//p1+下拉列表
p1.add(size);
p1.add(csize);
cfont.addItemListener(new Item());
csize.addItemListener(new Item());
p2.add(yes);
p2.add(exit);
p3.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "永远的java", 2, 2));
tp.add(show);
f.getContentPane().add(typep,"North");
f.getContentPane().add(tp,"Center");
f.getContentPane().add(butp,"South");
f.setTitle("编辑字体");
f.setBounds(20,20,300,200);
f.setResizable(false);
f.setVisible(true);
} private void saveFile() { //保存文件,讲字符写入文件
try{
FileWriter fw=new FileWriter(file);
fw.write(text.getText());
fw.close();
}catch(Exception e){e.printStackTrace();}
} /*private void openFile() { //打开文件,并将字符置于文本框中
try{
FileReader fr=new FileReader(file);
int len=(int)file.length();
char[]buffer=new char[len];
fr.close();
text.setText(new String(buffer));
}catch(Exception e){e.printStackTrace();}
}*/
};
}
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.*;import javax.imageio.ImageReader;
import javax.imageio.ImageWriter;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.JToolBar;
import javax.swing.ScrollPaneConstants;
import javax.swing.filechooser.FileNameExtensionFilter;
class NotepadFrame extends JFrame {
private Color color=Color.black;
private static File file=null;
private JFrame f;
private static JTextArea text=new JTextArea(0,16);//JTextArea显示纯文本的多行区域
private JLabel font,size;
private JButton yes,exit;
JPanel p1=new JPanel(new GridLayout(1,4)),
p2=new JPanel(),
p3=new JPanel();
private JPanel c=new JPanel(new BorderLayout());
yes=new JButton("确定");
exit=new JButton("退出");
public static JLabel show=new JLabel("永远的java");
f=new JFrame("字体选择");
font=new JLabel("字体");
size=new JLabel("字号");
JComboBox cfont=new JComboBox();
JComboBox csize=new JComboBox();
public static String s2="宋体";
public static String[] sz1={"10","16","24","30","32","36"},
sz2={"宋体","黑体","幼圆","隶书","楷体_GB2312"};
private JFrame frame = new JFrame();
public static int style=Font.PLAIN, Size=15;//普通字体 NotepadFrame()
{
super("simple word!");
JScrollPane w=new JScrollPane(text,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
c.add(w,BorderLayout.CENTER);
getContentPane().add(c);
this.setSize(800,600);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initTextPane();
initMenu();
initAboutDialog();
//initToolBar();
}
private void initAboutDialog() {
about.getContentPane().add(new JLabel("simple editorV1.0"));
about.setModal(true);
about.setSize(100,50);
}
void initTextPane(){ ///将文本框放入有滚动对象,并加入到Frame中
getContentPane().add(new JScrollPane(text));
}
JFileChooser filechooser=new JFileChooser();
JColorChooser colorchooser=new JColorChooser();
JDialog about=new JDialog(this);
JMenuBar menubar=new JMenuBar();
Graphics pictures;
private JMenu[] menus=new JMenu[]{
new JMenu("文件"),
new JMenu("编辑"),
new JMenu("帮助"),
new JMenu("插入"),
new JMenu("格式"),
new JMenu("工具"),
new JMenu("表格"),
}; JMenuItem menuitems[][]=new JMenuItem[][]{{
new JMenuItem("New"),
new JMenuItem("Open..."),
new JMenuItem("Save..."),
new JMenuItem("Exit")},{
new JMenuItem("Copy"),
new JMenuItem("Cut"),
new JMenuItem("Paste"),
new JMenuItem("Replace"),
new JMenuItem("Color...")},{
new JMenuItem("About")},{
new JMenuItem("Picture"),
new JMenuItem("File")},{
new JMenuItem("字体")},{
new JMenuItem("颜色设置")},{
new JMenu("插入"),
new JMenuItem("绘制表格")
}
};
void initMenu(){
text.setLineWrap(true);//换行
JMenuItem branch=new JMenuItem("表格");
menuitems[6][0].add(branch);
for(int i=0;i<menus.length;i++){
menubar.add(menus[i]);
for(int j=0;j<menuitems[i].length;j++){
menus[i].add(menuitems[i][j]);
menuitems[i][j].addActionListener(action);
}
}
for(int i=0;i<sz2.length;i++)
cfont.addItem(sz2[i]);
for(int i=0;i<sz1.length;i++)
csize.addItem(sz1[i]); this.setJMenuBar(menubar);
this.setBounds(400, 300, 300, 400);
} ActionListener action=new ActionListener( ){//菜单事件处理
public void actionPerformed(ActionEvent e){
JMenuItem mi=(JMenuItem)e.getSource();
String id=mi.getText();
if(id.equals("New")){
text.setText("");
file =null;
}else if(id.equals("Open...")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
openFile();
}
}else if(id.equals("Save...")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showSaveDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
saveFile();
}
}else if(id.equals("Exit")){
System.exit(0);
}else if(id.equals("Cut")){
text.cut();
}else if(id.equals("Copy")){
text.copy();
}else if(id.equals("Paste")){
text.paste();
}else if(id.equals("Replace")){
text.replaceSelection(new String(""));//替换
}else if(id.equals("Color...")){
color=JColorChooser.showDialog(NotepadFrame.this, "", color);
text.setForeground(color);
}else if(id.equals("About")){
about.setSize(100,50);
about.show();
}else if(id.equals("Picture")){////////////////////////////////////
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
filechooser.setFileFilter(filter); int result= filechooser.showOpenDialog(NotepadFrame.this);//图像如何获得URL
if(result == JFileChooser.APPROVE_OPTION){
String name = filechooser.getSelectedFile().getPath();
ImageIcon image = new ImageIcon(name);
// setSize(image.getIconWidth()+50, image.getIconHeight()+50);
text.setText("");
text.setBackground(Color.pink);
text.insertIcon(image);
}
}else if(id.equals("file")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
openFile();
}else if(id.equals("字体")){
fontType();
}else if(id.equals("颜色设置")){
Color userColor = JColorChooser.showDialog(null, "color", Color.PINK);
text.setForeground(userColor);
}else if(e1.getSource()==yes){//按确定后,字体生效,这里为默认的
Font font=new Font(s2,style,size);
TextArea.setFont(font);
f.dispose();//用来关闭windows的method,只是让windows消失,
//但并不是让 整个object释放内 }
else if(e1.getSource()==exit){
f.dispose();
} }
};
public void fontType(){
cfont.addActionListener(this);
csize.addActionListener(this);
p1.add(font);//p1中加label字体
p1.add(cfont);//p1+下拉列表
p1.add(size);
p1.add(csize);
cfont.addItemListener(new Item());
csize.addItemListener(new Item());
p3.add(yes);
p3.add(exit);
p2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "永远的java", 2, 2));
tp.add(show);
f.getContentPane().add(typep,"North");
f.getContentPane().add(tp,"Center");
f.getContentPane().add(butp,"South");
f.setTitle("编辑字体");
f.setBounds(20,20,300,200);
f.setResizable(false);
f.setVisible(true);
} private void saveFile() { //保存文件,讲字符写入文件
try{
FileWriter fw=new FileWriter(file);
fw.write(text.getText());
fw.close();
}catch(Exception e){e.printStackTrace();}
} private void openFile() { //打开文件,并将字符置于文本框中
try{
FileReader fr=new FileReader(file);
int len=(int)file.length();
char[]buffer=new char[len];
fr.close();
text.setText(new String(buffer));
}catch(Exception e){e.printStackTrace();}
}
JToolBar toolbar=new JToolBar(); //工具条
JButton[] buttons=new JButton[]{
new JButton("Copy",new ImageIcon("copy.jpg")),
new JButton("Cut",new ImageIcon("cut.jpg")),
new JButton("Paste",new ImageIcon("paste.jpg"))
};
private void initToolBar(){
for(int i=0;i<buttons.length;i++)
toolbar.add(buttons[i]);
buttons[0].setToolTipText("Copy");
buttons[0].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.copy();
}
});
buttons[1].setToolTipText("cut");
buttons[1].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.cut();
}
});
buttons[2].setToolTipText("paste");
buttons[2].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.paste();
}
});
// this.getContentPane().add(toolbar,BorderLayout.NORTH);
}
};
}
//*********这样的注释都是我加的。同时为了调试程序,也注掉了你原来的有些有用的行,你自己留意一下。提几个建议:
1。命名要见名知义,这个你可能知道,但可能为了少打几个字母就会不注意了,像p1,p2,tp,之类的名字,我都不知道是做什么的。(我自己有时也有这样的毛病。)
2.程序的缩进格式要对齐。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.net.*;
import javax.imageio.ImageReader;
import javax.imageio.ImageWriter;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JColorChooser;
import javax.swing.JComboBox;
import javax.swing.JDialog;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextPane;
import javax.swing.JToolBar;
import javax.swing.ScrollPaneConstants;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.BorderFactory; //*****这个你没有加。public class NotepadFrame extends JFrame { //********你总得有一个Public class。public 应该加上
private Color color=Color.black;
private static File file=null;
private JFrame f;
private static JTextArea text=new JTextArea(0,16);//JTextArea显示纯文本的多行区域
private JLabel font,size;
private JButton yes,exit;
JPanel p1=new JPanel(new GridLayout(1,4)),
p2=new JPanel(),
p3=new JPanel();
private JPanel c=new JPanel(new BorderLayout());
//yes=new JButton("确定"); //******下面的四行我注掉的没有写到方法体中。给你移到了fontType()方法中。
//exit=new JButton("退出");
public static JLabel show=new JLabel("永远的java");
//f=new JFrame("字体选择");
//font=new JLabel("字体");
//size=new JLabel("字号");
JComboBox cfont=new JComboBox();
JComboBox csize=new JComboBox();
public static String s2="宋体";
public static String[] sz1={"10","16","24","30","32","36"},sz2={"宋体","黑体","幼圆","隶书","楷体_GB2312"};
private JFrame frame = new JFrame();
public static int style=Font.PLAIN, Size=15;//普通字体 NotepadFrame(){
super("simple word!");
JScrollPane w=new JScrollPane(text,ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED);
c.add(w,BorderLayout.CENTER);
getContentPane().add(c);
this.setSize(800,600);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
initTextPane();
initMenu();
initAboutDialog();
//initToolBar();
}
private void initAboutDialog() {
about.getContentPane().add(new JLabel("simple editorV1.0"));
about.setModal(true);
about.setSize(100,50);
}
void initTextPane(){ ///将文本框放入有滚动对象,并加入到Frame中
getContentPane().add(new JScrollPane(text));
}
JFileChooser filechooser=new JFileChooser();
JColorChooser colorchooser=new JColorChooser();
JDialog about=new JDialog(this);
JMenuBar menubar=new JMenuBar();
Graphics pictures;
private JMenu[] menus=new JMenu[]{
new JMenu("文件"),
new JMenu("编辑"),
new JMenu("帮助"),
new JMenu("插入"),
new JMenu("格式"),
new JMenu("工具"),
new JMenu("表格"),
};
JMenuItem menuitems[][]=new JMenuItem[][]{{
new JMenuItem("New"),
new JMenuItem("Open..."),
new JMenuItem("Save..."),
new JMenuItem("Exit")},{
new JMenuItem("Copy"),
new JMenuItem("Cut"),
new JMenuItem("Paste"),
new JMenuItem("Replace"),
new JMenuItem("Color...")},{
new JMenuItem("About")},{
new JMenuItem("Picture"),
new JMenuItem("File")},{
new JMenuItem("字体")},{
new JMenuItem("颜色设置")},{
new JMenu("插入"),
new JMenuItem("绘制表格")
}
};
void initMenu(){
text.setLineWrap(true);//换行
JMenuItem branch=new JMenuItem("表格");
menuitems[6][0].add(branch);
for(int i=0;i<menus.length;i++){
menubar.add(menus[i]);
for(int j=0;j<menuitems[i].length;j++){
menus[i].add(menuitems[i][j]);
menuitems[i][j].addActionListener(action);
}
}
for(int i=0;i<sz2.length;i++)
cfont.addItem(sz2[i]);
for(int i=0;i<sz1.length;i++)
csize.addItem(sz1[i]);
this.setJMenuBar(menubar);
this.setBounds(400, 300, 300, 400);
}
ActionListener action=new ActionListener( ){//菜单事件处理
public void actionPerformed(ActionEvent e){
JMenuItem mi=(JMenuItem)e.getSource();
String id=mi.getText();
if(id.equals("New")){
text.setText("");
file =null;
}else if(id.equals("Open...")){
if(file!=null) filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
openFile();
}
}else if(id.equals("Save...")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showSaveDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
saveFile();
}
}else if(id.equals("Exit")){
System.exit(0);
}else if(id.equals("Cut")){
text.cut();
}else if(id.equals("Copy")){
text.copy();
}else if(id.equals("Paste")){
text.paste();
}else if(id.equals("Replace")){
text.replaceSelection(new String(""));//替换
}else if(id.equals("Color...")){
color=JColorChooser.showDialog(NotepadFrame.this, "", color);
text.setForeground(color);
}else if(id.equals("About")){
about.setSize(100,50);
about.show();
}else if(id.equals("Picture")){////////////////////////////////////
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
filechooser.setFileFilter(filter);
int result= filechooser.showOpenDialog(NotepadFrame.this);//图像如何获得URL
if(result == JFileChooser.APPROVE_OPTION){
String name = filechooser.getSelectedFile().getPath();
ImageIcon image = new ImageIcon(name);
// setSize(image.getIconWidth()+50, image.getIconHeight()+50);
text.setText("");
text.setBackground(Color.pink);
//text.insertIcon(image);
}
}else if(id.equals("file")){
if(file!=null)filechooser.setSelectedFile(file);
int returnVal=filechooser.showOpenDialog(NotepadFrame.this);
if(returnVal==JFileChooser.APPROVE_OPTION){
file=filechooser.getSelectedFile();
openFile();} //************这里你原来没有}
}else if(id.equals("字体")){
fontType();
}else if(id.equals("颜色设置")){
Color userColor = JColorChooser.showDialog(null, "color", Color.PINK);
text.setForeground(userColor);
}else if(e.getSource()==yes){//按确定后,字体生效,这里为默认的
Font font=new Font(s2,style,Integer.parseInt(size.getText())); //*********你原来是font(s2,style,size);
text.setFont(font);
f.dispose();//用来关闭windows的method,只是让windows消失,
//但并不是让 整个object释放内 }
else if(e.getSource()==exit){
f.dispose();
}
}
};
public void fontType(){
cfont.addActionListener(action);
csize.addActionListener(action);
yes=new JButton("确定");
exit=new JButton("退出");
f=new JFrame("字体选择");
font=new JLabel("字体");
size=new JLabel("字号");
p1.add(font);//p1中加label字体
p1.add(cfont);//p1+下拉列表
p1.add(size);
p1.add(csize);
// cfont.addItemListener(new Item()); //*********ItemListener你没有写。
//csize.addItemListener(new Item()); //*******同上
p3.add(yes);
p3.add(exit);
p2.setBorder(BorderFactory.createTitledBorder(BorderFactory.createLineBorder(Color.black), "永远的java", 2, 2));
// tp.add(show); //*****不知道 tp是什么,在那个地方。
f.getContentPane().add(p1,"North");
// f.getContentPane().add(tp,"Center"); //*******不知道 tp,
f.getContentPane().add(p2,"South");
f.setTitle("编辑字体");
f.setBounds(20,20,300,200);
f.setResizable(false);
f.setVisible(true);
}
private void saveFile() { //保存文件,讲字符写入文件
try{
FileWriter fw=new FileWriter(file);
fw.write(text.getText());
fw.close();
}catch(Exception e){e.printStackTrace();}
}
private void openFile() { //打开文件,并将字符置于文本框中
try{
FileReader fr=new FileReader(file);
int len=(int)file.length();
char[]buffer=new char[len];
fr.close();
text.setText(new String(buffer));
}catch(Exception e){e.printStackTrace();}
}
JToolBar toolbar=new JToolBar(); //工具条
JButton[] buttons=new JButton[]{
new JButton("Copy",new ImageIcon("copy.jpg")),
new JButton("Cut",new ImageIcon("cut.jpg")),
new JButton("Paste",new ImageIcon("paste.jpg"))
};
private void initToolBar(){
for(int i=0;i<buttons.length;i++)
toolbar.add(buttons[i]);
buttons[0].setToolTipText("Copy");
buttons[0].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.copy();
}
});
buttons[1].setToolTipText("cut");
buttons[1].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.cut();
}
});
buttons[2].setToolTipText("paste");
buttons[2].addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
text.paste();
}
});// this.getContentPane().add(toolbar,BorderLayout.NORTH);
}
public static void main(String[] args){ //******这个main()是我回的,没有这个是不行的。
new NotepadFrame();
}
}