Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 1181 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Apache Server
Joomla - Aktualisierung über das Backend möglich? (3)

Frage von FA-jka zum Thema Apache Server ...

Windows Server
Jnlp Endungen mit Java automatisch verknüpfen über GPO (10)

Frage von staybb zum Thema Windows Server ...

Batch & Shell
gelöst Cmd Befehle in Powershell GUI aufrufen (5)

Frage von Markus2016 zum Thema Batch & Shell ...

Linux Tools
Administrator Web-Panel (2)

Frage von ClepToManix zum Thema Linux Tools ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...