Hi,
hab ein Tool geschrieben in dem man eine IP Adresse angeben kann und diese wird dann angepingt. Dabei lass ich auch das Ergebnis in einer JTextArea ausgeben, allerdings wird nur die letzte Zeile ausgegeben. Zum Vergleich habe ich das ganze auch mit System.out.println() auf der Konsole ausgegeben, da gehts. Mit einem JLabel hab ich es auch schon probiert, ging auch nicht. Was muss ich machen das der ganze Text ausgegeben wird?
Hier der Code:
hab ein Tool geschrieben in dem man eine IP Adresse angeben kann und diese wird dann angepingt. Dabei lass ich auch das Ergebnis in einer JTextArea ausgeben, allerdings wird nur die letzte Zeile ausgegeben. Zum Vergleich habe ich das ganze auch mit System.out.println() auf der Konsole ausgegeben, da gehts. Mit einem JLabel hab ich es auch schon probiert, ging auch nicht. Was muss ich machen das der ganze Text ausgegeben wird?
Hier der Code:
Java:
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.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class Ping {
static JFrame mainFrame;
static JFrame result;
static JPanel panelButton;
static JPanel panelTextField;
static JPanel panelLabel;
static JLabel infoLabel;
static JTextArea textAreaResults;
static JTextField input;
static JButton buttonStart;
public static void main(String[] args) {
// TODO Auto-generated method stub
mainFrame = new JFrame();
mainFrame.setSize(250, 175);
mainFrame.setTitle("Ping Tool");
mainFrame.setLayout(new BorderLayout());
result = new JFrame();
result.setSize(500, 350);
textAreaResults = new JTextArea();
textAreaResults.setEditable(false);
result.add(textAreaResults);
result.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
panelButton = new JPanel();
panelTextField = new JPanel();
panelLabel = new JPanel();
infoLabel = new JLabel("Bitte IP Adresse eingaben");
input = new JTextField(13);
buttonStart = new JButton("Ping Starten");
panelButton.add(buttonStart);
panelTextField.add(input);
panelLabel.add(infoLabel);
listener();
mainFrame.add(panelLabel, BorderLayout.NORTH);
mainFrame.add(panelTextField, BorderLayout.CENTER);
mainFrame.add(panelButton, BorderLayout.SOUTH);
mainFrame.setVisible(true);
mainFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
static private void showResults() throws IOException{
mainFrame.dispose();
result.setVisible(true);
ProcessBuilder processBuilder = new ProcessBuilder(new String[] { "ping", input.getText().trim() });
Process process = processBuilder.start();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
textAreaResults.setText(line);
}
bufferedReader.close();
}
static private void listener(){
buttonStart.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
// TODO Auto-generated method stub
try {
showResults();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
}
}