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

zu einem Frame einen Scrollbar hinzufügen, falls er aus dem Bild ragt

Frage Entwicklung Java

Mitglied: 24855

24855 (Level 1)

19.01.2007, aktualisiert 15:48 Uhr, 5120 Aufrufe, 5 Kommentare

Dynamische GUI darf nicht größer als das Bild werden

Hallo Leutz,

ich hab hier mein Quellcode für eine kleines Gui-Tool gepostet, welche es erlaubt aus einer variablen Anzahl von Ordnern Checkboxen zu erzeugen, welche später Quasi ein BackboneSkript für einzelne Silentskripte erzeugt.

Mein Problem ist immer noch, das mein Programmfenster größer werden kann, als die Desktopauflösung...

Traumhaft währe ein Vorschlag, besser ein paar zeilen code, wie es möglich ist dem Frame einen seitlichen Scrollbar zu verpassen um Quasi im Programmfenster scorllen zu können. Dann könnte man unzählige Checkboxen erzeugen und trotzdem das Layout auf eine Spalte reduzieren, was alles übersichtlicher machen würde.

Hat jemand ne Idee?

JANOSCH

01.
import java.awt.*; 
02.
import java.awt.event.*; 
03.
import java.lang.*; 
04.
import java.io.*; 
05.
import java.util.*; 
06.
 
07.
public class main extends Frame { 
08.
	 
09.
	Button b; 
10.
	TextField Tf; 
11.
	Checkbox[] CBArray; 
12.
	String PfadS,PfadD, Filename; 
13.
	String[] entries; 
14.
	int laenge; 
15.
	TextArea ausgabe; 
16.
	String mac; 
17.
	Font schrift = new Font("arial", Font.PLAIN, 9); 
18.
	 
19.
	 
20.
	public main(){ 
21.
		  
22.
			PfadD = "C:\\file\\skripte"; 
23.
			PfadS = "C:\\file\\daten"; 
24.
			 
25.
		    Frame f = new Frame(); 
26.
		    f.addWindowListener( new MyWindowAdapter() ); 
27.
		    f.setFont(schrift); 
28.
		    f.setVisible(true); 
29.
			f.setTitle("LUMIT_InstallSkript_Konfigurationsmanager_JanikCh"); 
30.
 
31.
			Panel p = new Panel(); 
32.
			f.setBackground(Color.BLUE); 
33.
			f.setForeground(Color.WHITE); 
34.
 
35.
			Panel p1 = new Panel(); 
36.
			Panel pausg = new Panel(); 
37.
			 
38.
			f.setLayout(new BorderLayout()); 
39.
			f.add("North",p); 
40.
			f.add("Center",p1); 
41.
			f.add("South",pausg); 
42.
			p.setLayout(new GridLayout(28,3)); 
43.
			//p.setLayout(new FlowLayout(FlowLayout.LEFT)); 
44.
			p1.setForeground(Color.black); 
45.
			pausg.setForeground(Color.BLACK); 
46.
			 
47.
			Label l = new Label("Skript speichern unter Name:"); 
48.
			Tf = new TextField(20); 
49.
			 
50.
			Panel pb= new Panel(); 
51.
			pb.setLayout(new FlowLayout(FlowLayout.LEFT)); 
52.
			pb.add(l); 
53.
			pb.add(Tf); 
54.
			l.setForeground(Color.WHITE); 
55.
			p1.add(pb); 
56.
			 
57.
			//++++++++++++++++++++++ Auslesen Ordnerstruktur 
58.
			 
59.
			entries = new File( "C:\\file\\daten" ).list(); 
60.
			laenge = entries.length; 
61.
			// +++++++++++++++++++++ Erzeugen dynamische GUI  
62.
			CBArray = new Checkbox[80]; 
63.
						 
64.
			for(int i=1;i<=laenge;i++) 
65.
			{			 
66.
				CBArray[i-1] = new Checkbox(entries[i-1],false); 
67.
				p.add(CBArray[i-1]); 
68.
				if(entries[i-1].contains("1_UTIL")){CBArray[i-1].setState(true);} 
69.
				if(entries[i-1].contains("STANDARD")){CBArray[i-1].setState(true);} 
70.
71.
 
72.
			 
73.
		    b = new Button("Skript erzeugen"); 
74.
			b.addActionListener(new ButtonListener()); 
75.
			pb.add(b); 
76.
	 
77.
			ausgabe = new TextArea("Bitte die Auswahl treffen durch anhaken,\r\nden Dateinamen ohne Endung angeben und den Button klicken!\r\nBestehende Skripte mit gleichem Namen werden überschrieben!\r\n\r\nEs wird durch das Skript immer ein Ordner \"C:\\Wartung\" auf dem Zielsystem angelegt!",5,60,1); 
78.
			pausg.add(ausgabe); 
79.
			 
80.
			f.pack(); 
81.
					 
82.
	}	 
83.
	 
84.
	class ButtonListener implements ActionListener { 
85.
		public void actionPerformed( ActionEvent e ){   
86.
		 
87.
			// +++++++++++++++++++++ Lesen Zieldateiname                       
88.
			Filename 	= Tf.getText().toString(); 
89.
			System.out.println(Filename); 
90.
			String Pfad = PfadD+"\\"+Filename+".cmd"; 
91.
			//++++++++++++++++++++++ Abfangen leerer Dateiname 
92.
			if (Filename.equals("")) 
93.
94.
				ausgabe.setText("Kein Dateiname für die Skriptdatei angegeben!!\r\nBitte Namen ohne Endung angeben und erneut klicken!\r\n"); 
95.
96.
			//+++++++++++++++++++++ Schreiben Standard Skriptinhalte 
97.
			else 
98.
99.
				try{ 
100.
	 	    	File f = new File(Pfad); 
101.
	 	    	FileWriter fw = new FileWriter (f); 
102.
		    	PrintWriter pw = new PrintWriter(fw); 
103.
		    	 
104.
		    	pw.println("@echo on"); 
105.
		    	pw.println("::Beginne mit Softwarestapelinstallation"); 
106.
		    	pw.println("cd.."); 
107.
		    	pw.println("pushd c:"); 
108.
		    	pw.println("cd\\"); 
109.
		    	pw.println("MD Wartung"); 
110.
		    	pw.println("popd"); 
111.
		    	pw.println("copy setx.exe c:\\wartung"); 
112.
		    	pw.println("cd daten"); 
113.
		    //++++++++++++++++++++++ Schreiben dynamische Skriptinhalte	 
114.
		    	for(int i=1;i<=laenge;i++) 
115.
				{	 
116.
 
117.
		    	 if((CBArray[i-1].getState())==true){ 
118.
		    		 pw.println("Echo installiere " + entries[i-1]); 
119.
		    		 pw.println("		echo."); 
120.
		    		 pw.println("		cd \"" + entries[i-1]+"\""); 
121.
		    		 pw.println("		call \"" + entries[i-1]+ ".cmd\" /wait"); 
122.
		    		 pw.println("		cd.."); 
123.
		    		 pw.println("echo."); 
124.
		    		 pw.println("echo."); 
125.
		    		 pw.println(""); 
126.
		    		 pw.println(""); 
127.
		    		 //hier pfad 
128.
		    	 }		  
129.
					 
130.
131.
 
132.
		    	pw.flush(); 
133.
		    	pw.close(); 
134.
				 
135.
				}catch(IOException ioe1){ausgabe.setText("Fehler beim Schreiben des Skriptfiles, ueberpruefen ob Pfade vorhanden und Rechte gesetzt!\r\n");} 
136.
				 
137.
				Tf.setText(""); 
138.
				ausgabe.setText("Skriptfile erzeugt\r\n"); 
139.
				ausgabe.append("Skriptfile gespeichert unter "+PfadS+"\\"+Filename+".cmd"); 
140.
141.
142.
143.
	 
144.
	 
145.
	class MyWindowAdapter extends WindowAdapter 
146.
147.
    public void windowClosing(WindowEvent e) 
148.
149.
        System.exit(0); 
150.
151.
 
152.
153.
	 
154.
 
155.
 
156.
/** 
157.
 * @param args 
158.
 */ 
159.
public static void main(String[] args) { 
160.
	// TODO Auto-generated method stub 
161.
	 
162.
	main a = new main(); 
163.
 
164.
 
165.
166.
} 
Mitglied: Zitruslimmonade
19.01.2007 um 14:54 Uhr
Moinsen..
um einem frame einen scrollbar zu verpassen, seis vertikal oder horizontal schreibst du in deinem Frameset wo du ihn aufrufst einfach scrolling=auto dann werdens automatisch erzeugt oder schreibst scrolling=yes dann sind die balken immer da egal ob se gebraucht werden oder nichens...

<frameset framespacing="0" border="0" rows="50,*" frameborder="0">
<frame name="kopf" src="" scrolling="no" noresize>
<frame name="haupt" src="" scrolling="auto" noresize>
<noframes>
<body>
<p>Diese Seite verwendet Frames. Frames werden von Ihrem Browser aber nicht unterstützt.</p>
</body>
</noframes>
</frameset>


hope it helped
best wishes
chris
Bitte warten ..
Mitglied: 24855
19.01.2007 um 15:04 Uhr
Mhhh Experte bin ich nicht, aber was du da schreibst sieht mir ziemlich nach HTML aus.. was ich hier gepostet habe, ist Java ;) .. das Läuft als Applikation - nicht im Browser
Bitte warten ..
Mitglied: Zitruslimmonade
19.01.2007 um 15:22 Uhr
hej sorry, mein fehler.. hab net wirklich den code gelesen.. dacht mal eben schnell geantwortet und dann ab dafür.. naja was dabei raus komm siehst ja.. sorry noch mal.. bei java kann ich dir mal sowas von garnet mehr helfen ist schon so lang her das ich mal überhaupt was darin machen "durfte"

gruss
chris
Bitte warten ..
Mitglied: 24855
19.01.2007 um 15:46 Uhr
Kein Problem Zitrolimmo ;)

lieber so als gar nix geantwortet ;)

Bin mit viel probieren und noch mehr google selbst auf die Lösung gekommen. Dafür gibt es eine spezielle Klasse, welche das super managed, als Methode eines Frame/Panel kann man das wohl net implementieren - darum auch sehr schwer zu finden.

Trotzdem Danke für deine Hilfsbereitschaft
Bitte warten ..
Mitglied: 24855
19.01.2007 um 15:48 Uhr
Die Klasse ScrollPane hat es gebracht.. jetzt kann ich in dem dynamischen Teil der GIU scrollen ..........
01.
 
02.
import java.awt.*; 
03.
import java.awt.event.*; 
04.
import java.lang.*; 
05.
import java.io.*; 
06.
import java.util.*; 
07.
 
08.
public class main extends Frame { 
09.
	 
10.
	Button b; 
11.
	TextField Tf; 
12.
	Checkbox[] CBArray; 
13.
	String PfadS,PfadD, Filename; 
14.
	String[] entries; 
15.
	int laenge; 
16.
	TextArea ausgabe; 
17.
	String mac; 
18.
	Font schrift = new Font("arial", Font.PLAIN, 9); 
19.
	 
20.
	 
21.
	public main(){ 
22.
		  
23.
			PfadD = "C:\\file\\skripte"; 
24.
			PfadS = "C:\\file\\daten"; 
25.
			 
26.
		    Frame f = new Frame(); 
27.
		    f.addWindowListener( new MyWindowAdapter() ); 
28.
		    f.setFont(schrift); 
29.
		    f.setVisible(true); 
30.
		    f.setSize(500,700); 
31.
			f.setBackground(Color.BLUE); 
32.
			f.setForeground(Color.WHITE); 
33.
		    f.setTitle("LUMIT_InstallSkript_Konfigurationsmanager_JanikCh"); 
34.
		    f.setLayout(new BorderLayout()); 
35.
		     
36.
		    ScrollPane ScrollingPanel = new ScrollPane(); 
37.
		    Panel Base = new Panel(); 
38.
 
39.
		    f.add("North",ScrollingPanel); 
40.
		    f.add("Center",Base); 
41.
		     
42.
			Panel p = new Panel(); 
43.
			ScrollingPanel.add(p); 
44.
						 
45.
			Panel p1 = new Panel(); 
46.
			Panel pausg = new Panel(); 
47.
	 
48.
			Base.setLayout(new BorderLayout()); 
49.
			Base.add("Center",p1); 
50.
			Base.add("South",pausg); 
51.
			 
52.
			p1.setForeground(Color.black); 
53.
			pausg.setForeground(Color.BLACK); 
54.
			 
55.
			Label l = new Label("Skript speichern unter Name:"); 
56.
			Tf = new TextField(20); 
57.
			 
58.
			Panel pb= new Panel(); 
59.
			pb.setLayout(new FlowLayout(FlowLayout.LEFT)); 
60.
			pb.add(l); 
61.
			pb.add(Tf); 
62.
			l.setForeground(Color.WHITE); 
63.
			p1.add(pb); 
64.
			 
65.
			//++++++++++++++++++++++ Auslesen Ordnerstruktur 
66.
			 
67.
			entries = new File( "C:\\file\\daten" ).list(); 
68.
			laenge = entries.length; 
69.
			// +++++++++++++++++++++ Erzeugen dynamische GUI  
70.
			CBArray = new Checkbox[laenge+1]; 
71.
						 
72.
			for(int i=1;i<=laenge;i++) 
73.
			{			 
74.
				CBArray[i-1] = new Checkbox(entries[i-1],false); 
75.
				p.add(CBArray[i-1]); 
76.
				if(entries[i-1].contains("1_UTIL")){CBArray[i-1].setState(true);} 
77.
				if(entries[i-1].contains("STANDARD")){CBArray[i-1].setState(true);} 
78.
79.
 
80.
			p.setLayout(new GridLayout(laenge+1,1)); 
81.
		    b = new Button("Skript erzeugen"); 
82.
			b.addActionListener(new ButtonListener()); 
83.
			pb.add(b); 
84.
	 
85.
			ausgabe = new TextArea("Bitte die Auswahl treffen durch anhaken,\r\nden Dateinamen ohne Endung angeben und den Button klicken!\r\nBestehende Skripte mit gleichem Namen werden überschrieben!\r\n\r\nEs wird durch das Skript immer ein Ordner \"C:\\Wartung\" auf dem Zielsystem angelegt!",5,60,1); 
86.
			pausg.add(ausgabe); 
87.
			 
88.
			ScrollingPanel.setSize(450,540); 
89.
			f.pack(); 
90.
			 
91.
	}	 
92.
	 
93.
	class ButtonListener implements ActionListener { 
94.
		public void actionPerformed( ActionEvent e ){   
95.
		 
96.
			// +++++++++++++++++++++ Lesen Zieldateiname                       
97.
			Filename 	= Tf.getText().toString(); 
98.
			System.out.println(Filename); 
99.
			String Pfad = PfadD+"\\"+Filename+".cmd"; 
100.
			//++++++++++++++++++++++ Abfangen leerer Dateiname 
101.
			if (Filename.equals("")) 
102.
103.
				ausgabe.setText("Kein Dateiname für die Skriptdatei angegeben!!\r\nBitte Namen ohne Endung angeben und erneut klicken!\r\n"); 
104.
105.
			//+++++++++++++++++++++ Schreiben Standard Skriptinhalte 
106.
			else 
107.
108.
				try{ 
109.
	 	    	File f = new File(Pfad); 
110.
	 	    	FileWriter fw = new FileWriter (f); 
111.
		    	PrintWriter pw = new PrintWriter(fw); 
112.
		    	 
113.
		    	pw.println("@echo on"); 
114.
		    	pw.println("::Beginne mit Softwarestapelinstallation"); 
115.
		    	pw.println("cd.."); 
116.
		    	pw.println("pushd c:"); 
117.
		    	pw.println("cd\\"); 
118.
		    	pw.println("MD Wartung"); 
119.
		    	pw.println("popd"); 
120.
		    	pw.println("copy setx.exe c:\\wartung"); 
121.
		    	pw.println("cd daten"); 
122.
		    //++++++++++++++++++++++ Schreiben dynamische Skriptinhalte	 
123.
		    	for(int i=1;i<=laenge;i++) 
124.
				{	 
125.
 
126.
		    	 if((CBArray[i-1].getState())==true){ 
127.
		    		 pw.println("Echo installiere " + entries[i-1]); 
128.
		    		 pw.println("		echo."); 
129.
		    		 pw.println("		cd \"" + entries[i-1]+"\""); 
130.
		    		 pw.println("		call \"" + entries[i-1]+ ".cmd\" /wait"); 
131.
		    		 pw.println("		cd.."); 
132.
		    		 pw.println("echo."); 
133.
		    		 pw.println("echo."); 
134.
		    		 pw.println(""); 
135.
		    		 pw.println(""); 
136.
		    	 }		  
137.
					 
138.
139.
		    	pw.flush(); 
140.
		    	pw.close(); 
141.
				 
142.
				}catch(IOException ioe1){ausgabe.setText("Fehler beim Schreiben des Skriptfiles, ueberpruefen ob Pfade vorhanden und Rechte gesetzt!\r\n");} 
143.
				 
144.
				Tf.setText(""); 
145.
				ausgabe.setText("Skriptfile erzeugt\r\n"); 
146.
				ausgabe.append("Skriptfile gespeichert unter "+PfadS+"\\"+Filename+".cmd"); 
147.
148.
149.
150.
	 
151.
	 
152.
	class MyWindowAdapter extends WindowAdapter 
153.
154.
    public void windowClosing(WindowEvent e) 
155.
156.
        System.exit(0); 
157.
158.
159.
 
160.
/** 
161.
 * @param args 
162.
 */ 
163.
public static void main(String[] args) { 
164.
	// TODO Auto-generated method stub 
165.
	 
166.
	main a = new main(); 
167.
 
168.
 
169.
170.
}
Bitte warten ..
Ähnliche Inhalte
C und C++
C-sharp andere Scrollbar hinzufügen
Frage von YanmaiC und C++2 Kommentare

Hallo ihr Administratoren, ich benutze in meinen Projekten das Metroframework. In diesem Framework ist eine coole Scrollbar vorhanden, welche ...

Batch & Shell
Powershell: ScrollBar in ListBox definieren
gelöst Frage von Markus2016Batch & Shell11 Kommentare

Hallo zusammen, benötige mal wieder Unterstüzung. :-) Ich erzeuge CheckBoxen in einem Array. Aufgrund deren Anzahl benötige ich einen ...

Webentwicklung
Webseiteeinbettung in Frames
Frage von 118722Webentwicklung11 Kommentare

Hallo, ich hatte vor, diese Webseite in einer Frame auf meiner Webseite einzubetten: , jedoch mit wenig Erfolg, da ...

HTML
Größe eines Frames ändern
gelöst Frage von 113909HTML2 Kommentare

Habe folgenden Frame zum einbinden auf meiner Website: <iframe frameborder="0" src="{URL}"></iframe> Soweit funktioniert alles, jedoch wird der Frame in ...

Neue Wissensbeiträge
Viren und Trojaner

Deaktivierter Keylogger in HP Notebooks entdeckt

Information von bitcoin vor 21 StundenViren und Trojaner1 Kommentar

Ein Grund mehr warum man Vorinstallationen der Hersteller immer blank bügeln sollte Der deaktivierte Keylogger findet sich im vorinstallierten ...

Router & Routing

Lets Encrypt kommt auf die FritzBox

Information von bitcoin vor 1 TagRouter & Routing

In der neuesten Labor-Version der FB7490 integriert AVM unter anderem einen Let's Encrypt Client für Zugriffe auf das Webinterface ...

Internet

Was nützt HTTPS, wenn es auch von Phishing Web-Seiten genutzt wird

Information von Penny.Cilin vor 4 TagenInternet17 Kommentare

HTTPS richtig einschätzen Ob man eine Webseite via HTTPS aufruft, zeigt ein Schloss neben der Adresse im Webbrowser an. ...

Webbrowser

Bugfix für Firefox Quantum released - Installation erfolgt teilweise nicht automatisch!

Erfahrungsbericht von Volchy vor 5 TagenWebbrowser8 Kommentare

Hallo zusammen, gem. dem Artike von heise online wurde mit VersionFirefox 57.0.1 sicherheitsrelevante Bugs behoben. Entgegen der aktuellen Veröffentlichung ...

Heiß diskutierte Inhalte
Batch & Shell
Trusted Sites für alle User auf dem PC einpflegen
Frage von xXTaKuZaXxBatch & Shell12 Kommentare

Aufgabestellung: Es sollen auf 1 PC (bzw. mehreren PCs) vertrauenswürdige Sites per Powershell eingetragen werden, die für alle User ...

Windows 10
Probleme mit Dateien, deren Pfad + Dateiname länger als 256 Zeichen sind
Frage von FalaffelWindows 1011 Kommentare

Guten Tag, unter Windows 10 scheint es immer noch das Problem zu geben, dass der Pfad + Dateiname einer ...

Vmware
DOS 6.22 in VMWare mit CD-ROM
gelöst Frage von hesperVmware10 Kommentare

Hallo zusammen! Ich hab ein saublödes Problem. Es ist eine VMWare mit DOS 6.22 zu erstellen auf dem ein ...

Microsoft Office
Outlook 2016 - Makro startet nicht über Knopf im Menüband
Frage von ZunarasMicrosoft Office9 Kommentare

Schönen guten Tag! ich brauche wieder einmal Hilfe. Ich möchte gerne von Office 2010 32bit auf 2016 64bit wechseln ...