繁体   English   中英

Java Swing中的问题

[英]Issues in Java Swing

我创建了一个Java程序来将MAC地址保存到外部文件。 下面是代码:

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);
        }
    }

谢谢。

将工作方法复制到actionPerformed方法中并交换。

out.write(in.readLine());

对于:

out.write(form.getText(0));

然后将其大量包装在try / catch

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM