Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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, 1269 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
Python
GUI WYSIWYG Tkinter : python (1)

Frage von confused zum Thema Python ...

HTML
HTML Programmierung (5)

Frage von Alex29 zum Thema HTML ...

Linux Tools
gelöst Administrator Web-Panel (3)

Frage von ClepToManix zum Thema Linux Tools ...

Basic
Programmierung von Windows Programmen (13)

Frage von Ghost108 zum Thema Basic ...

Neue Wissensbeiträge
Notebook & Zubehör

WOL bei HP Notebooks

(6)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

LAN, WAN, Wireless

Neue Cisco Catalyst-Serie 9000

Information von Kuemmel zum Thema LAN, WAN, Wireless ...

Sicherheit

Millionen Euro in den Sand gesetzt?

(3)

Information von transocean zum Thema Sicherheit ...

Heiß diskutierte Inhalte
Windows 10
Netzwerkkarte schaltet sich erst nach dem Logon ein (23)

Frage von DerWoWusste zum Thema Windows 10 ...

Windows Server
Seit IP Umstellung DC DNS Fehler (18)

Frage von Yaimael zum Thema Windows Server ...

Weiterbildung
gelöst Fest angestellter Admin oder Systemhaus Admin mit Kundenbetreuung? (15)

Frage von Voiper zum Thema Weiterbildung ...

Netzwerke
Mobile Einwahl IPSec VPN von iPhone iPad T-Mobile zur Pfsense (15)

Frage von Spitzbube zum Thema Netzwerke ...