【发布时间】:2011-11-06 20:33:13
【问题描述】:
我在 JTextArea 和 JTextField 中设置一些文本时遇到问题...我有点困惑,因为我之前已经在它们中设置了文本,事实上我已经将它们设置在同一个程序的不同类中没有任何问题...我已经打印出字符串以检查以确保它不是空的或只是空的“”并且我的字符串确实打印了它们应该打印的内容,但它们没有在 JTextField/Area 中设置。 .
谁能告诉我为什么会这样?
(我已经给了你整个代码,这样你就不会被方法调用弄糊涂了,但大部分可能不是必需的。你真正需要关注的是 run() 方法和 populateInfo() 方法. populateInfo() 应该将测试设置为 textArea 和 textField。)
下面是代码:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.lang.*;
import java.util.*;
import java.io.*;
public class EditDiary extends JApplet implements ActionListener {
private JFrame frame = new JFrame();
private String[] date;
private String[] rest;
private int index = 0;
private int count = 0;
private JLabel lblDate = new JLabel("Date");
private JTextField txtDate = new JTextField();
private JLabel lblDiary = new JLabel("Diary Entry");
private JTextArea txtDiary = new JTextArea(20,30);
private JButton btnDone = new JButton("Done");
private JButton btnCancel = new JButton("Cancel");
public EditDiary(){
JPanel panel1 = new JPanel();
panel1.add(lblDate);
panel1.add(txtDate);
panel1.add(lblDiary);
panel1.add(txtDiary);
panel1.add(btnDone);
panel1.add(btnCancel);
add(panel1);
btnDone.addActionListener(this);
btnCancel.addActionListener(this);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == btnDone) {
try {
editInfo();
}
catch (Exception ex) {
}
finally {
}
}
else if (e.getSource() == btnCancel) {
// Haven't done anything here yet
}
}
public void run(String[] sDate, String[] sRest, int iIndex, int iCount) {
date = sDate;
rest = sRest;
index = iIndex;
count = iCount;
JApplet applet = new EditDiary();
frame.add(applet);
frame.setTitle("Edit Diary Entry");
frame.setLocationRelativeTo(null); // Center the frame
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(1280, 800);
frame.setLocationRelativeTo(null); // Center the frame
frame.setVisible(true);
populateInfo();
}
public static void main(String[] args) {
}
public void populateInfo() {
// System.out.println(date[index]);
// System.out.println(rest[index]);
txtDate.setText(date[index]);
txtDiary.setText(rest[index]);
}
public void editInfo() throws Exception {
BufferedWriter out = new BufferedWriter(new FileWriter("Diary.txt"));
date[index] = txtDate.getText();
rest[index] = txtDiary.getText();
for(int i = 0; i < count; ++i) {
out.write(date[i]);
out.write(rest[i]);
}
}
}
【问题讨论】:
-
调用
run()的代码在哪里?为什么你有一个什么都不做的main()?为什么你的 finally 什么都不做? -
调用 run 的代码无关紧要...您只需要知道它确实被调用并且它确实在数组中读取以及什么不...我不担心对于您在这里所说的任何内容,我还没有完成其余的代码...我只需要知道为什么 textArea/Field 没有填充
标签: java swing jpanel jtextfield jtextarea