针对java实验的思考(三)


题目:

编写一个Java源程序,其中包含:

编写一个包含主方法main的公共类(访问权限为public的类),该类继承自窗体类JFrame,并且,该类实现了接口ActionListener(也就是说,实现了接口ActionListener的方法actionPerformed)。

源程序实现的任务是实现如下图所示的图形用户界面:

 

 

1)可以在“请输入文件路径和名称:”后面的文本框中输入文件名和路径。

2)可以在文本区中写文本,例如,文本区中的前三行内容。

3)可以在“请输入需要追加的内容:”后面的文本域中输入内容,按回车键之后,其中的内容会添加到文本区中(添加的内容另起一行),例如,文本区中的“北京”。

4)单击“将文本区的内容写入文件”按钮,文本区中的内容就会被写到指定的文件中,如下图所示。


注意事项:

  如果JPanel jP1;不new JPanel()  那么运行时会报错Exception in thread "main" java.lang.NullPointerException。

  不进行new就无法分配内存空间给jP1,main就无法指向jP1

 


如果界面没有显示,则是没有写setVisible(true);


     jtextarea.setLocation(0,150);
    jtextarea.setSize(600,200);
    add(jtextarea);
    add(jP,BorderLayout.CENTER);

     如果先add(jP,BorderLayout.CENTER);后jtextarea.setLocation(0,150); jtextarea.setSize(600,200);add(jtextarea);

   则界面jtextarea会覆盖掉jP.

源代码:

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;

import javax.swing.*;


public class ex6 extends JFrame implements ActionListener{
    JTextArea jtextarea=new JTextArea();
    
    JLabel jlabel;
    
    JButton jbutton=new JButton("将文本区的内容写入文件");
    
    JTextField jtextfield1=new JTextField(25);
    JTextField jtextfield2=new JTextField(25);
    
    JPanel jP1=new JPanel();
    JPanel jP2=new JPanel();
    JPanel jP3=new JPanel();
    JPanel jP=new JPanel();
    
    ex6() {
        jP1.add(new JLabel("请输入文件路径和名称:"));
        jP1.add(jtextfield1);
        jP2.add(new JLabel("请输入需要追加的内容:"));
        jP2.add(jtextfield2);
        jP.add(jP1);
        jP.add(jP2);
        jbutton.setSize(200,30);
        jbutton.setLocation(80,80);
        add(jbutton);
        
        jbutton.addActionListener(this);
        jtextfield1.addActionListener(this);
        jtextfield2.addActionListener(this);
        
        jtextarea.setLocation(0,150);
        jtextarea.setSize(600,200);
        add(jtextarea);
        add(jP,BorderLayout.CENTER);
        setTitle("添加文本");
        setSize(600, 400);
        setLocation(100,100);
        setVisible(true);
        // TODO Auto-generated constructor stub
    }
    
    public static void main(String[]args){
        new ex6();
    }
    public void actionPerformed(ActionEvent e) {
        try {
            if(e.getSource()==jbutton)
        {
            String text[] = jtextarea.getText().split("[\\r\\n]");
            FileWriter fw;
                fw = new FileWriter(jtextfield1.getText());
            for(int i = 0; i < text.length; i++){
                    fw.write(text[i]);
                fw.write("\r\n");
            }
                fw.close();    
        }
    }
         catch (IOException e1) {
                // TODO Auto-generated catch block
                e1.printStackTrace();
            }
        // TODO Auto-generated method stub
        
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值