题目:
编写一个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
}
}