昨天刚接触J2SE,想通过编写一个记事本来得到进一步的学习
但是在编写替换窗口的时候出现了问题不知道图片发上来没有,替换窗口是照着WIN7的记事本做的,有两个TextField,tf1和tf2,但是我用tf1.getText(),读出来是空字符串
不知道是什么原因而在另外一个窗口(查找的窗口,也是照着WIN7做的)中有一个TextField,tf,我用tf.getText()却能成功的读出里面的字符串。还有就是这些东西我都是自己手写的,用的是Eclips,听说JB上有种方法叫“拖”,我不知道是怎么拖的请教一下Eclipse里面有同样的方法吗?
但是在编写替换窗口的时候出现了问题不知道图片发上来没有,替换窗口是照着WIN7的记事本做的,有两个TextField,tf1和tf2,但是我用tf1.getText(),读出来是空字符串
不知道是什么原因而在另外一个窗口(查找的窗口,也是照着WIN7做的)中有一个TextField,tf,我用tf.getText()却能成功的读出里面的字符串。还有就是这些东西我都是自己手写的,用的是Eclips,听说JB上有种方法叫“拖”,我不知道是怎么拖的请教一下Eclipse里面有同样的方法吗?
解决方案 »
- 一个swing 问题有点麻烦谁能帮一下
- 怎么设置标签里的字体大小
- 一个关于线程同步的问题,请大家帮我看看。。。。
- DisplayTage 分页问题
- ServletContext和PageContext编译出错
- 调试lumaQQ时碰到的一个问题
- 兄弟们,FileInputStream的read(byte b[],int off,int len)中的那个关于偏移量的参数int off该怎么用啊?
- java有处理数据结构:图的类库吗
- applet连接数据库,写了一个policy文件,用appletviewer可以browse,但是如何在ie和nc中带那个policy文件?请各位帮忙一下...
- String如何转换成int?
- Java swing都有哪几种布局管理器?
- 请教大家一个IO乱码问题
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JScrollPane;
import javax.swing.JTextArea; /** 作一下记事本,包括菜单:
文件:新建/打开/保存/另存/退出
编辑:撤销/剪切/复制/粘贴/删除/查找/替换/全选
帮助:关于记事本
*/
public class Notepad implements ActionListener{
JFrame jf = new JFrame("记事本");
JTextArea jta = new JTextArea(10,20);//记事本,显示纯文本的多行区域
public Notepad(){
String[] menuLabel ={"文件", "编辑","帮助"};
String[][] miLabel ={{"新建", "" , "打开", "保存", "另存","" , "退出"},
{"撤销", "剪切", "复制", "粘贴", " 删除", "","查找", "替换", "" ,"全选"}, {" 关于记事本"} };
JMenuBar jmb = new JMenuBar();
for(int i=0;i<menuLabel.length;i++){
JMenu jm = new JMenu(menuLabel[i]);
jmb.add(jm);
for(int j=0;j<miLabel[i].length;j++){
if("".equals(miLabel[i][j])){
jm.addSeparator();
}else{
JMenuItem jmi = new JMenuItem(miLabel[i][j]);
jm.add(jmi);
jmi.addActionListener(this);
}
}
}
jf.setJMenuBar(jmb);//JFrame加菜单栏时用setJmenuBar(),不用add
jf.add(new JScrollPane(jta));//加滚动条
jf.setLocation(300,300);//设计出现的位置
jf.setSize(400,400);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void actionPerformed(ActionEvent e) {
String comm = e.getActionCommand();
if("新建".equals(comm)){
jta.setText("");
}else if("打开".equals(comm)){
//FileDialog 类显示一个对话框窗口,用户可以从中选择文件
//由于它是一个模式对话框,当应用程序调用其 show 方法来显示对话框时,
//它将阻塞其余应用程序,直到用户选择一个文件
FileDialog fd = new FileDialog(jf,"请选择要打开的文件",FileDialog.LOAD);
fd.setVisible(true);
//fd.show();
}else if("保存".equals(comm)){
}else if("另存".equals(comm)){
}else if("退出".equals(comm)){
}else if("撤销".equals(comm)){
}else if("剪切".equals(comm)){
}else if("复制".equals(comm)){
}else if("粘贴".equals(comm)){
}else if("删除".equals(comm)){
}else if("查找".equals(comm)){
}else if("替换".equals(comm)){
}else if("全选".equals(comm)){
}else{//关于记事本
}
}
public static void main(String[] args) {
new Notepad();
}
}
怎么会读不出来啊
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.Date;
public class NewBox implements ActionListener,ItemListener{
protected JFrame f=new JFrame("java笔记本");
private JMenuBar mb=new JMenuBar();//创建菜单条对象
private TextArea tf=new TextArea();//创建文本对象 //查找框组件
private JFrame reserchframe=new JFrame("查找");
private JTextField tf1=new JTextField();
private Label label1=new Label("查找内容:",Label.LEFT);
private Label label2=new Label("方向:",Label.LEFT);
private JButton bt1=new JButton("查找下一个");
private JButton bt2=new JButton("取消");
private JCheckBox cb1=new JCheckBox("区分大小写");
private ButtonGroup group1=new ButtonGroup();
private JRadioButton rb1=new JRadioButton("向上");
private JRadioButton rb2=new JRadioButton("向下");
//替换框组件
private JFrame changeframe=new JFrame("替换");
private Label label3=new Label("替换为:",Label.LEFT);
private JTextField tf2=new JTextField();
private JTextField tf3=new JTextField();
private JButton bt3=new JButton("替换");
private JButton bt4=new JButton("替换全部");
private JButton bt5=new JButton("查找下一个");
private JButton bt6=new JButton("取消");
private JCheckBox cb2=new JCheckBox("区分大小写");
private Label label4=new Label("查找内容:",Label.LEFT);
//创建菜单
private JMenu fileM=new JMenu("文件");
private JMenu editM=new JMenu("编辑");
private JMenu toolsM=new JMenu("格式");
private JMenu helpM=new JMenu("帮助");
//文件
private JMenuItem newnew=new JMenuItem("新建");
private JMenuItem open=new JMenuItem("打开");
private JMenuItem save=new JMenuItem("保存");
private JMenuItem saveto=new JMenuItem("另存为");
private JMenuItem paper=new JMenuItem("页面设置");
private JMenuItem printer=new JMenuItem("打印");
private JMenuItem end=new JMenuItem("退出");
//编辑
private JMenuItem undo=new JMenuItem("撤消");
private JMenuItem cut=new JMenuItem("剪切");
private JMenuItem copy=new JMenuItem("复制");
private JMenuItem paste=new JMenuItem("粘贴");
private JMenuItem delate=new JMenuItem("删除");
private JMenuItem reserch=new JMenuItem("查找");
private JMenuItem next=new JMenuItem("查找下一个");
private JMenuItem change=new JMenuItem("替换");
private JMenuItem turnto=new JMenuItem("转到");
private JMenuItem all=new JMenuItem("全选");
private JMenuItem time=new JMenuItem("时间/日期");
//格式
private JCheckBox linefeed=new JCheckBox("自动换行");
private JMenuItem script=new JMenuItem("字体");
//帮助
private JMenuItem readme=new JMenuItem("关于记事本"); private String str,strrec;
private boolean reget=true;
private boolean pd=true;//判断查找方向,false为向前,true为向后
private boolean pd2=false,kprf=false;//判断是否有选择到
private boolean pd3=true;//是否区分大小写
public NewBox()
{
BorderLayout ff=new BorderLayout();
f.setLayout(ff);
//添加文件菜单
mb.add(fileM);
fileM.add(newnew);
fileM.add(open);
fileM.add(save);
fileM.add(saveto);
fileM.addSeparator();
fileM.add(paper);
fileM.add(printer);
fileM.addSeparator();
fileM.add(end);
//添加编辑菜单
mb.add(editM);
editM.add(undo);
editM.addSeparator();
editM.add(cut);
editM.add(copy);
editM.add(paste);
editM.add(delate);
editM.addSeparator();
editM.add(reserch);
editM.add(next);
editM.add(change);
editM.add(turnto);
editM.addSeparator();
editM.add(all);
editM.add(time);
//添加格式菜单
mb.add(toolsM);
toolsM.add(linefeed);
toolsM.add(script);
//添加帮助菜单
mb.add(helpM);
//动作监听器
//文件
end.addActionListener(this);
//编辑
copy.addActionListener(this);
paste.addActionListener(this);
delate.addActionListener(this);
time.addActionListener(this);
//查找
reserch.addActionListener(this);
bt1.addActionListener(this);
bt2.addActionListener(this);
rb1.addItemListener(this);
rb2.addItemListener(this);
cb1.addItemListener(this);
next.addActionListener(this);
//替换
change.addActionListener(this);
bt5.addActionListener(this);
bt3.addActionListener(this);
bt4.addActionListener(this);
bt6.addActionListener(this);
cb2.addItemListener(this);
helpM.add(readme);
f.setJMenuBar(mb);
f.add(tf);
//设置出现位置及大小
//主文本
f.setBounds(100,100,600,400);
f.setVisible(true);
//查找
reserchframe.setLayout(null);
reserchframe.setBounds(150,150,400,130);
reserchframe.setVisible(false);
label1.setBounds(0,0,60,30);
reserchframe.add(label1);
tf1.setBounds(60,5,180,25);
reserchframe.add(tf1);
bt1.setBounds(280,5,100,25);
reserchframe.add(bt1);
bt2.setBounds(280,35,100,25);
reserchframe.add(bt2);
cb1.setBounds(0,50,100,25);
cb1.setSelected(true);
reserchframe.add(cb1);
group1.add(rb1);
group1.add(rb2);
rb1.setBounds(120,65,60,25);
reserchframe.add(rb1);
rb2.setBounds(180,65,60,25);
rb2.setSelected(true);
pd=true;
reserchframe.add(rb2);
label2.setBounds(155,40,50,28);
reserchframe.add(label2);
//替换
changeframe.setLayout(null);
changeframe.setBounds(150,150,400,200);
changeframe.setVisible(false);
label4.setBounds(0,5,60,25);
changeframe.add(label4);
label3.setBounds(0,35,60,25);
changeframe.add(label3);
tf2.setBounds(60,5,180,25);
changeframe.add(tf2);
tf3.setBounds(60,35,180,25);
changeframe.add(tf3);
cb2.setBounds(0,100,100,25);
cb2.setSelected(true);
changeframe.add(cb2);
bt5.setBounds(280,5,100,25);
changeframe.add(bt5);
bt3.setBounds(280,35,100,25);
changeframe.add(bt3);
bt4.setBounds(280,65,100,25);
changeframe.add(bt4);
bt6.setBounds(280,95,100,25);
changeframe.add(bt6);
//窗口监听器
MyWindowAdapter mwa=new MyWindowAdapter(this);
f.addWindowListener(mwa);
reserchframe.addWindowListener(mwa);
}
public void actionPerformed(ActionEvent e)
{
//文件
if (e.getSource().equals(end))
{
System.exit(0);
}
//编辑
if (e.getSource().equals(copy))
{
str=tf.getSelectedText();
}
if (e.getSource().equals(paste))
{
tf.append(str);
}
if (e.getSource().equals(delate))
{
tf.replaceRange("",tf.getSelectionStart(),tf.getSelectionEnd());
}
if (e.getSource().equals(time))
{
tf.append(""+new Date());
}
if (e.getSource().equals(reserch))
{
reserchframe.setVisible(true);
}
if (e.getSource().equals(bt1)||e.getSource().equals(next)||e.getSource().equals(bt5))
{
init(tf1);
}
if (e.getSource().equals(bt2)||e.getSource().equals(bt6))
{
kprf=false;
reserchframe.setVisible(false);
changeframe.setVisible(false);
}
if (e.getSource().equals(change))
{
changeframe.setVisible(true);
}
if (e.getSource().equals(bt3))
{
if (kprf==true)
{
String str2;
str2=tf2.getText();
tf.replaceRange(str2,tf.getSelectionStart(),tf.getSelectionEnd());
}
else
{
JOptionPane.showMessageDialog((Component)null,"找不到对应字符!","记事本",JOptionPane.WARNING_MESSAGE);
}
}
if (e.getSource().equals(bt4))
{
while(true)
{
init(tf2);
if (kprf==true)
{
String str2;
str2=tf3.getText();
tf.replaceRange(str2,tf.getSelectionStart(),tf.getSelectionEnd());
}
else
{
JOptionPane.showMessageDialog((Component)null,"替换完毕!","记事本",JOptionPane.WARNING_MESSAGE);
break;
}
}
}
}
public void itemStateChanged(ItemEvent e)
{
if (e.getItemSelectable().equals(rb1))
{
pd=false;
reget=true;
pd2=false;
}
if (e.getItemSelectable().equals(rb2))
{
pd=true;
reget=true;
pd2=false;
}
if (e.getItemSelectable().equals(cb1)||e.getItemSelectable().equals(cb2))
{
if (pd3==true) pd3=false;
else pd3=true;
}
}
public void init(JTextField tfx)
{
kprf=true;
if (reget==true)
{
str=tf.getText();
strrec=str;
reget=false;
}
String str1=tfx.getText();
if (pd3==false)
{
str=str.toLowerCase();
str1=str1.toLowerCase();
}
System.out.println("k"+tfx.getText());
int location,k;
if (pd==false) location=str.lastIndexOf(str1);
else location=str.indexOf(str1);
if (location==-1)
{
reget=true;
kprf=false;
JOptionPane.showMessageDialog((Component)null,"找不到对应字符!","记事本",JOptionPane.WARNING_MESSAGE);
}
if (pd==false) tf.select(location,location+str1.length());
else if (pd2==false)
{
tf.select(location,location+str1.length());
pd2=true;
}
else
{
k=tf.getSelectionEnd();
tf.select(k+location,k+location+str1.length());
}
tf.requestFocus();//获取焦点
if (pd==false) str=str.substring(0,tf.getSelectionStart());
else if (pd2==true)
{
int temp=strrec.length()-str.length();
str=str.substring(tf.getSelectionEnd()-temp,str.length());
}
} public static void main(String[] args)
{
new NewBox();
}
}
没办法了新手就是新手代码在这,有没好心人帮我看看咋回事