Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Java - GUI Programmierung - Ausrichtungsfrage + JLabel Aktualisierung im Panel

Frage Entwicklung Java

Mitglied: JimStar

JimStar (Level 1) - Jetzt verbinden

24.02.2015 um 09:38 Uhr, 1287 Aufrufe, 1 Kommentar

Guten Morgen Community,

ich bin noch am Anfang der Java-Programmierung und will eigt. nur ein Programm schreiben, welches aus eine GUI besteht und durch Eingabe und dem ProcessBuilder einen Ping mit Windows Boardmitteln ausführt und am GUI anzeigt.

Problem 1: Wenn ich bei meinem Panel den Layout-Manager ausschalte, wird das GUI richtig angezeigt aber dann funktionieren die Labels irgendwie nicht. Wie wird programmiert, mit Layout-Manager oder ohne? Wie kann ich mit Layout-Manager einstellen wo etwas auf dem Panel ist? c33b1fe13c5c486f0e9363a78b83426f - Klicke auf das Bild, um es zu vergrößern

Problem 2: Ich bekomme das JLabel irgendwie nicht aktualisiert mit der Statusmeldung, in Zeile 99 wird das label mit dem text von der CMD gefüllt genau wie in Zeile 100 mit dem Befehl system.out.println(s) der Text von der CMD direkt in der Console ausgegeben wird, welches ja auch funktioniert d59cc7ceb530aa511c1ec39ba43eadb4 - Klicke auf das Bild, um es zu vergrößern



Der Programmcode:

01.
import java.awt.event.ActionEvent; 
02.
import java.awt.event.ActionListener; 
03.
 
04.
import javax.swing.*; 
05.
 
06.
import java.io.*; 
07.
import java.util.*; 
08.
 
09.
// Damit Objekte der Klasse BeispielListener 
10.
// zum ActionListener werden kann, muss das Interface 
11.
// ActionListener implementiert werden 
12.
public class BeispielListener extends JFrame implements ActionListener { 
13.
 
14.
	static String ausgabe; 
15.
 
16.
	JButton button1; 
17.
	JButton button2; 
18.
	JButton button3; 
19.
 
20.
	JTextField eingabe1; 
21.
	JTextField eingabe2; 
22.
	JTextField eingabe3; 
23.
 
24.
	JLabel label; 
25.
	JPanel panel; 
26.
 
27.
	public BeispielListener() { 
28.
		this.setTitle("Ping"); 
29.
		this.setSize(400, 200); 
30.
		panel = new JPanel(); 
31.
 
32.
		// Leeres JLabel-Objekt wird erzeugt 
33.
		label = new JLabel(); 
34.
		 
35.
		// Drei Buttons werden erstellt 
36.
		button1 = new JButton("Start"); 
37.
		button2 = new JButton("Stop"); 
38.
 
39.
		// Eingabefelder werden erstellt 
40.
 
41.
		eingabe1 = new JTextField(); 
42.
		 
43.
		// Gestaltung der Elemente 
44.
 
45.
		eingabe1.setBounds(10, 10, 200, 20); 
46.
		button1.setBounds(30, 40, 70, 25); 
47.
		button2.setBounds(120, 40, 70, 25); 
48.
 
49.
		// Buttons werden dem Listener zugeordnet 
50.
		button1.addActionListener(this); 
51.
		button2.addActionListener(this); 
52.
 
53.
		// Eingabefelder werden dem Listener zugeordnet 
54.
 
55.
		eingabe1.addActionListener(this); 
56.
 
57.
		// Buttons werden dem JPanel hinzugefügt 
58.
		panel.add(button1); 
59.
		panel.add(button2); 
60.
 
61.
		// Eingabefelder werden dem JPanel hinzugefügt 
62.
 
63.
		panel.add(eingabe1); 
64.
 
65.
		// JLabel wird dem Panel hinzugefügt 
66.
		 
67.
		panel.add(label); 
68.
		this.add(panel); 
69.
		 
70.
 
71.
72.
 
73.
	public static void main(String[] args) throws IOException { 
74.
		// Ein neues Objekt der Klasse BeispielListener wird erzeugt 
75.
		// und sichtbar gemacht 
76.
		 
77.
		 
78.
		BeispielListener bl = new BeispielListener(); 
79.
		bl.setVisible(true); 
80.
		 
81.
		 
82.
		 
83.
84.
 
85.
	public void doCommand(List<String> command) throws IOException { 
86.
		String s = null; 
87.
 
88.
		ProcessBuilder pb = new ProcessBuilder(command); 
89.
		Process process = pb.start(); 
90.
 
91.
		BufferedReader stdInput = new BufferedReader(new InputStreamReader( 
92.
				process.getInputStream())); 
93.
		BufferedReader stdError = new BufferedReader(new InputStreamReader( 
94.
				process.getErrorStream())); 
95.
 
96.
		// read the output from the command 
97.
		System.out.println("Here is the standard output of the command:\n"); 
98.
		while ((s = stdInput.readLine()) != null) { 
99.
				label.setText(s); 
100.
				System.out.println(s); 
101.
			 
102.
103.
 
104.
		// read any errors from the attempted command 
105.
		System.out 
106.
				.println("Here is the standard error of the command (if any):\n"); 
107.
		while ((s = stdError.readLine()) != null) { 
108.
				label.setText(s); 
109.
			 
110.
111.
112.
 
113.
	public void actionPerformed(ActionEvent ae) { 
114.
		// Die Quelle wird mit getSource() abgefragt und mit den 
115.
		// Buttons abgeglichen. Wenn die Quelle des ActionEvents einer 
116.
		// der Buttons ist, wird der Text des JLabels entsprechend geändert 
117.
 
118.
		if (ae.getSource() == this.button1) { 
119.
 
120.
			ausgabe = eingabe1.getText(); 
121.
			 
122.
			BeispielListener ping = new BeispielListener(); 
123.
			List<String> commands = new ArrayList<String>(); 
124.
			commands.add("ping"); 
125.
			commands.add("-l"); 
126.
			commands.add("5"); 
127.
			commands.add(ausgabe); 
128.
			try { 
129.
				ping.doCommand(commands); 
130.
			} catch (IOException e) { 
131.
				// TODO Auto-generated catch block 
132.
				e.printStackTrace(); 
133.
134.
 
135.
136.
137.
} 
Ich weiß nicht ob das an Informationen reicht, um mir zu helfen. Falls noch welche benötigt werden, einfach danach Fragen.

Vielen Dank schon mal im Vorraus!

Mit freundlichen Grüßen,

Jimmy
Mitglied: 114757
LÖSUNG 01.03.2015, aktualisiert 12.08.2015
Moin,
label.setText(s);
du setzt hier den Inhalt des Labels immer nur auf eine Zeile der Ausgabe. Und außerdem wird nichts angezeigt weil der Label während der Schleife nicht "refresht" wird.
label.update(label.getGraphics());
Außerdem wäre hier ein JTextArea Element besser für diese Aufgabe geeignet, dem du die einzelnen Zeilen mit .Append hinzufügst.
http://stackoverflow.com/questions/629315/dynamically-refresh-jtextarea ...

Gruß jodel32
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
IPv6 Aktualisierung
gelöst Frage von trallerBatch & Shell3 Kommentare

Hallo, ich versuche gerade ein Script zu schreiben, um die IPv6 bei einem DynDNS Anbieter zu aktualisieren. Ich muss ...

Switche und Hubs
19" Panel mit ausziehbaren Patchkabeln
Frage von FFSephirothSwitche und Hubs4 Kommentare

Guten Morgen, ich suche oben genanntes Panel. Ich hab so eines schon mal vor 2 Jahren auf der Cebit ...

Linux Tools
Administrator Web-Panel
gelöst Frage von ClepToManixLinux Tools3 Kommentare

Hallo, ich möchte mir auf meinem Ubuntu Server 16.04 ein Web-Panel zum Administrieren meines Server installieren. Hauptaugenmerk liegt bei ...

Switche und Hubs
Heimnetzwerk Fritzbox Switch Panel
Frage von slipknot-sgSwitche und Hubs3 Kommentare

Guten Tag, bald muss ich ein Netzwerk im Haus machen, da dort ein paar Netzwerkdosen verbaut werden. Grundlage ist ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Necur-Botnet soll Erpressungstrojaner Scarab massenhaft verbreiten

Information von BassFishFox vor 4 StundenErkennung und -Abwehr

12,5 Millionen Spam-Mails aus einem Bot-Netz mit 6 Millionen Computern? Eigentlich eine schwache Leistung. Die Erpresser setzen dabei auf ...

Microsoft

Nadeldrucker-Problem unter Windows - Microsoft liefert Updates

Information von BassFishFox vor 4 StundenMicrosoft

Hat ja nicht lange gedauert. Nachdem die November-Updates für Windows 7, 8.1 und 10 zahlreiche Nadeldrucker lahmgelegt hatten, stellt ...

Linux

Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde

Information von Frank vor 12 StundenLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 1 TagBatch & Shell9 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Heiß diskutierte Inhalte
Linux
Limux-Ende in München: Wie ein Linux Projekt unter Ausschluss der Öffentlichkeit zerstört wurde
Information von FrankLinux14 Kommentare

Mein persönlicher Kommentar zum Thema "Limux-Ende". Die SPD-Politikerin Anne Hübner hat die Richtung von München ganz klar definiert: "Wir ...

Router & Routing
Zwei Netzwerke erstellen
Frage von bunteblumeRouter & Routing14 Kommentare

Hallo Zusammen, Ich möchte gerne ein backup von einem bestimmten Folder welcher auf dem Server regelmässig synchronisiert wird auf ...

Windows Server
Kann man im KMS nachschauen , wieviele Clients den Key in Anspruch genommen haben
gelöst Frage von rainergugusWindows Server14 Kommentare

Hallo, wir haben einen KMS Windows 10 Key. Dieser ist ja W7 kompatibel. Aber unser Windows 7 Pool registriert ...

Off Topic
Fachkräftemangel in Deutschland? - Talentschmiede schreibt alle 2 Tage die gleichen Stellen aus
Frage von Penny.CilinOff Topic12 Kommentare

Hallo, haben wir in Deutschland Fachkräftemangel? Die Talentschmiede schreibt gefühlt alle zwei Tage dieselben Stellen aus. Und das schon ...