我已經創建了一個Java程序來將MAC地址保存到外部文件。以下是代碼:Java Swing中的問題
import java.io.*;
public class MAC{
public static void main(String[] args) throws IOException{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
System.out.print("Enter the MAC Addres : ");
File file = new File("mac.txt");
FileWriter fstream = new FileWriter("mac.txt",true);
BufferedWriter out = new BufferedWriter(fstream);
out.write(in.readLine());
out.newLine();
out.close();
}
}
我也創建了一個Swing應用程序。我完成了前端,但現在我無法使用swing將MAC地址保存到外部文件。
在我的ActionListener中,我得到的值,但我不知道如何將細節保存到外部文件。
我能夠將ActionListener值打印到屏幕上,但我希望將它保存在外部文件中。
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import java.io.*;
public class TextForm extends JPanel {
private JTextField[] fields;
// Create a form with the specified labels, tooltips, and sizes.
public TextForm(String[] labels, int[] widths) {
super(new BorderLayout());
JPanel labelPanel = new JPanel(new GridLayout(labels.length, 1));
JPanel fieldPanel = new JPanel(new GridLayout(labels.length, 1));
add(labelPanel, BorderLayout.WEST);
add(fieldPanel, BorderLayout.CENTER);
fields = new JTextField[labels.length];
for (int i = 0; i < labels.length; i += 1) {
fields[i] = new JTextField();
if (i < widths.length)
fields[i].setColumns(widths[i]);
JLabel lab = new JLabel(labels[i], JLabel.RIGHT);
lab.setLabelFor(fields[i]);
labelPanel.add(lab);
JPanel p = new JPanel(new FlowLayout(FlowLayout.LEFT));
p.add(fields[i]);
fieldPanel.add(p);
}
}
public String getText(int i) {
return (fields[i].getText());
}
public static void main(String[] args) {
String[] labels = { "Enter MAC Address : "};
int[] widths = { 17 };
final TextForm form = new TextForm(labels, widths);
JButton submit = new JButton("Submit");
submit.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(form.getText(0));
}
});
JFrame f = new JFrame("Text Form Example");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(form, BorderLayout.NORTH);
JPanel p = new JPanel();
p.add(submit);
f.getContentPane().add(p, BorderLayout.SOUTH);
f.pack();
f.setVisible(true);
}
}
謝謝。
順便說一句1)在這種情況下不需要擴展面板。 2)這個GUI將更適合在'JOptionPane.showInputDialog()'中顯示。3)不要忘記提出一個問題。 – 2012-04-22 18:33:58
你的主題標題應該總結一下當前的問題,而不是一般性的幫助請求。當然你需要幫助,每個在這裏發佈問題的人都需要幫助,但爲什麼不在問題標題中告訴我們問題是什麼。例如「如何將MAC地址保存到文件」等等。做到這一點,你會讓你的問題專家的興趣高漲,結果你可能會更快得到更好的幫助。還要注意,你甚至不必提及「Java」或「Swing」,因爲java和swing標籤會爲你提供幫助。運氣。 – 2012-04-22 18:54:48