07. maj 2009 - 02:37
Der er
3 kommentarer og 1 løsning
Åbn command prompt ved click på knap
Hej Experts, Er det muligt at få et eksempel på hvordan jeg laver en interface knap og når man trykker åbnes der en windows kommand prompt hvor der skal fyres en ping af til f.eks ping 4.2.2.1 -t Jeg har fundet en masse koder, men har brug for et simpelt eksempel for at lære og ikke blive forvirret af alt muligt andet kode. Håber i kan hjælpe. Takker
Annonceindlæg fra 7N A/S
Følgende virker, men jeg ved ikke om det er helt simpelt: import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; import javax.swing.SwingUtilities; public class GuiPinger extends JFrame { private JTextField tf; private JTextArea ta; private JButton btn; public GuiPinger() { setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setTitle("Pinger"); setLayout(new BorderLayout()); tf = new JTextField(); JPanel top = new JPanel(); top.setLayout(new BorderLayout()); top.add(new JLabel("Host: "), BorderLayout.WEST); top.add(tf, BorderLayout.CENTER); getContentPane().add(top, BorderLayout.NORTH); ta = new JTextArea(); getContentPane().add(new JScrollPane(ta), BorderLayout.CENTER); btn = new JButton("Ping"); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ta.setText(""); Thread t = new Thread(new Runnable() { public void run() { try { Process p = Runtime.getRuntime().exec(new String[] { "ping", tf.getText() }); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while((line = br.readLine()) != null) { final String line2 = line + "\n"; EventQueue.invokeLater(new Runnable() { public void run() { ta.append(line2); } }); } p.waitFor(); } catch (IOException e) { JOptionPane.showMessageDialog(null, e.getMessage()); } catch (InterruptedException e) { JOptionPane.showMessageDialog(null, e.getMessage()); } } }); t.start(); } }); getContentPane().add(btn, BorderLayout.SOUTH); setSize(800, 600); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame f = new GuiPinger(); f.setVisible(true); } }); } }
Den her variant er meget simplere, men vil også kunne give diverse mystiske fejl: import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.JTextField; public class BadGuiPinger extends JFrame { private JTextField tf; private JTextArea ta; private JButton btn; public BadGuiPinger() { setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); setTitle("Pinger"); setLayout(new BorderLayout()); tf = new JTextField(); JPanel top = new JPanel(); top.setLayout(new BorderLayout()); top.add(new JLabel("Host: "), BorderLayout.WEST); top.add(tf, BorderLayout.CENTER); getContentPane().add(top, BorderLayout.NORTH); ta = new JTextArea(); getContentPane().add(new JScrollPane(ta), BorderLayout.CENTER); btn = new JButton("Ping"); btn.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ta.setText(""); try { Process p = Runtime.getRuntime().exec(new String[] { "ping", tf.getText() }); BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream())); String line; while ((line = br.readLine()) != null) { final String line2 = line + "\n"; ta.append(line2); } p.waitFor(); } catch (IOException ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } catch (InterruptedException ex) { JOptionPane.showMessageDialog(null, ex.getMessage()); } } }); getContentPane().add(btn, BorderLayout.SOUTH); setSize(800, 600); } public static void main(String[] args) { JFrame f = new BadGuiPinger(); f.setVisible(true); } }
25. august 2010 - 22:11
#4
Hej Arne, Tak for svar. Jeg noede aldrig hvor jeg ville med dette og glemte alt om det. Sorry det to saa lang tid at komme tilbage til dig.
Kurser inden for grundlæggende programmering