ERLEDIGT
JA
JA
ANTWORTEN
15
15
ZUGRIFFE
423
423
EMPFEHLEN
-
Hey, ich versuche meinem JFrame ein Icon zu verpassen mit:
Code :1 2
private Image icon = Toolkit.getDefaultToolkit().getImage("SECIcon.gif"); frame.setIconImage(icon);
Das Bild ist 100% vorhanden, da ich später mit:
ein TrayIcon adde.Code :1
TrayIcon trayIcon = new TrayIcon(icon, "SEC", menu);
Trotzdem bekomme ich eine Nullpointer Exception in der setIconImage zeile.
Hat jemand eine Ahnung?
Ist es richtig, dass das Icon ein 16x16Pixel großes gif sein muss?
-
15.08.11 20:26 #2
Hi,
wenn du das Bild in deinem root-Ordner von deinem Projekt liegen hast, dann müsste das Programm dieses eigentlich finden.
Nein, das Bild/Icon kann x-beliebig groß sein, allerdings sind 16x16Pixel schöner an zu sehen, da sonst die Composites vergrößert werden, um das Icon rein zu "pressen".
Vielleicht könntest du deinen Code mal ein wenig genauer posten, damit man auch mehr raus lesen kann.
Grüße
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
15.08.11 20:36 #3SE Tutorials.de Gastzugang
Naja ... vielleicht wäre mal der komplette StackTrace nützlich. Wenigstens kam die WO genau die NPE auftritt. Trotzdem würde mich mal folgendes interessieren : nutzt du eine IDE ? Wird das TrayIcon angeziegt ? Liegt das Icon außerhalb der Jar ?
Ein paar mehr Infos dürfen es schon sein.
-
Sorry, wenn man selber schon in dem ganzen drinsteckt, vergisst man solche Sachen schnell
Ja ich benutze Eclipse, ja dsa TrayIcon wird angezeigt und aus einer Jar hab ich das ganze nicht gestartet, das Bild liegt im Verzeichnis des Projects. Wenn ich versuche in Eclipse das Programm zu starten, kommt die NPE.
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.SwingUtilities; import java.awt.AWTException; import java.awt.Dimension; import java.awt.Image; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; import javax.swing.JFrame; public class MyGui extends javax.swing.JFrame implements ActionListener { private static JFrame frame = null; private ArrayList<JScrollPane> scrollPaneList = new ArrayList<JScrollPane>(); private ArrayList<JPanel> panelList = new ArrayList<JPanel>(); private ArrayList<JTable> ergebnisTabelle = new ArrayList<JTable>(); private JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT,JTabbedPane.SCROLL_TAB_LAYOUT); private static JCheckBox checkBoxAutoStart = new JCheckBox("mit Windows starten (SysTray)"); private Image icon = Toolkit.getDefaultToolkit().getImage("unbenannt.gif"); public MyGui() { // Set Look & Feel try { javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager .getCrossPlatformLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } frame.setIconImage(icon); //SystemTray if (SystemTray.isSupported()) { SystemTray sysTray = SystemTray.getSystemTray(); //create popupmenu PopupMenu menu = new PopupMenu(); //create item MenuItem open = new MenuItem("Öffnen"); menu.add(open); //add action listener to the item in the popup menu open.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { frame.setVisible(true); WriteProperties.write(); } }); //create item MenuItem exit = new MenuItem("Beenden"); //add item to menu menu.add(exit); //add action listener to the item in the popup menu exit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { WriteProperties.write(); System.exit(0); } }); //create system tray icon. TrayIcon trayIcon = new TrayIcon(icon, "Stisys Ergebnis Checker", menu); //add the tray icon to the system tray. try { sysTray.add(trayIcon); } catch(AWTException e) { System.out.println("System Tray unsupported!"); } } frame = new JFrame("SEC"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocationRelativeTo(null); frame.setLayout(null); frame.setSize(500, 400); // Benutzername Label JLabel usernameLabel = new JLabel("Benutzername:"); usernameLabel.setBounds(10, 13, (int) usernameLabel.getPreferredSize() .getWidth(), 10); frame.add(usernameLabel); // Passwort Label JLabel passwordLabel = new JLabel("Passwort:"); passwordLabel.setBounds(110, 13, (int) passwordLabel.getPreferredSize() .getWidth(), 10); frame.add(passwordLabel); //Usernamefeld usernameField.setBounds(10, 25, 90, 20); frame.add(usernameField); // Passwortfeld passwordField.setBounds(110, 25, 90, 20); frame.add(passwordField); //Ergebnisse holen Button hinzufügen updateExams.setActionCommand("update"); updateExams.addActionListener(this); updateExams.setBounds(210, 25, 150, 20); frame.add(updateExams); // TabbedPane hinzufügen mit leerer Übersicht String[][] ergebnisse = { { "", "" }, { "Keine", "Ergebnisse" } }; String[] columnNames = { "Kurs", "Note" }; ergebnisTabelle.add(new JTable(ergebnisse, columnNames)); ergebnisTabelle.get(0).setPreferredScrollableViewportSize( new Dimension(390, 160)); scrollPaneList.add(new JScrollPane(ergebnisTabelle.get(0))); scrollPaneList.get(0).setViewportView(ergebnisTabelle.get(0)); panelList.add(new JPanel()); panelList.get(0).add(scrollPaneList.get(0)); tabbedPane.addTab("Übersicht", panelList.get(0)); tabbedPane.setBounds(10, 70, 480, 200); frame.add(tabbedPane); //AutostartOption hinzufügen checkBoxAutoStart.setBounds(7, 350, (int) checkBoxAutoStart .getPreferredSize().getWidth(), 15); checkBoxAutoStart.setActionCommand("autostart"); checkBoxAutoStart.addActionListener(this); frame.add(checkBoxAutoStart); JButton sysTray = new JButton("in SysTray minimieren"); sysTray.setActionCommand("systray"); sysTray.addActionListener(this); sysTray.setBounds(320, 345, (int) sysTray.getPreferredSize() .getWidth(), 20); frame.add(sysTray); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { @SuppressWarnings("unused") MyGui window = new MyGui(); } }); } public void actionPerformed(ActionEvent e) { // In Systray minimieren if ("systray".equals(e.getActionCommand())) { frame.setVisible(false); WriteProperties.write(); //AutostartOption } else if ("autostart".equals(e.getActionCommand())) { //Autostart aktivieren durch Registryeintrag if (checkBoxAutoStart.isSelected()) { WriteProperties.write(); try { FileWriter fw = new FileWriter( System.getProperty("user.dir") + "\\sec.reg"); BufferedWriter out = new BufferedWriter(fw); out.write("Windows Registry Editor Version 5.00"); out.newLine(); out.newLine(); out.write("[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]"); out.newLine(); out.newLine(); String tmp = (new File("sec.reg")).getAbsolutePath() .toString(); tmp = tmp.replace("\\", "\\\\"); out.write("\"Stisys Ergebnis Checker\"=\"" + tmp + "\""); System.out.println(tmp); out.close(); fw.close(); String s = "regedit /s sec.reg"; Runtime.getRuntime().exec(s); } catch (IOException e1) { } //Autostart deaktivieren } else { try { FileWriter fw = new FileWriter( System.getProperty("user.dir") + "\\sec.reg"); BufferedWriter out = new BufferedWriter(fw); out.write("Windows Registry Editor Version 5.00"); out.newLine(); out.newLine(); out.write("[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]"); out.newLine(); out.newLine(); String tmp = System.getProperty("user.dir"); tmp = tmp.replace("\\", "\\\\"); out.write("\"Stisys Ergebnis Checker\"=-"); out.close(); fw.close(); tmp = System.getProperty("user.dir"); tmp = tmp.replace("\\", "\\\\"); String s = "regedit /s sec.reg"; Runtime.getRuntime().exec(s); } catch (IOException e1) { } } } } public static JFrame getFrame() { return frame; } }
Und hier der Stacktrace:
Code :1 2 3 4 5 6 7 8 9 10 11
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at sec.MyGui.<init>(MyGui.java:53) at sec.MyGui$3.run(MyGui.java:168) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source)
Geändert von tommey (16.08.11 um 08:04 Uhr)
-
16.08.11 08:04 #5
Ja jetzt seh ich das Problem.
Du willst das setIconImage auf das JFrame von deiner MyGui Klasse setzen, nehm ich mal an. dann musst du das "frame." vorne dran wegnehmen. Das ist auch das Problem, da die Variable frame (oben static Variable) noch null ist.
Grüße
FabioBitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Hey super für die schnelle Antwort

ich hab jetzt mal das frame vorne weggenommen, aber die Tasse ist immernoch da, sprich mein Icon wird nicht angezeigt
-
16.08.11 08:16 #7Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Das bewirkt keine Änderung, das Icon im Tray ist da, aber nicht anstelle der tasse.
Mit dem LookAndFeel hängt das nicht zusammen oder?
-
16.08.11 08:55 #9
Ich hab deinen Code mal ein bischen umgestellt, da du deine Klasse MyGui zwar von JFrame ableitest, aber dieses JFrame dann nicht verwendest, sondern ein neues machst. Versuchs mal so:
Code java:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248
import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.geom.Ellipse2D; import java.awt.geom.Line2D; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTabbedPane; import javax.swing.JTable; import javax.swing.SwingUtilities; import java.awt.AWTException; import java.awt.BasicStroke; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.MenuItem; import java.awt.PopupMenu; import java.awt.SystemTray; import java.awt.Toolkit; import java.awt.TrayIcon; import javax.swing.JFrame; public class MyGui extends JFrame implements ActionListener { private static JFrame frame; private ArrayList<JScrollPane> scrollPaneList = new ArrayList<JScrollPane>(); private ArrayList<JPanel> panelList = new ArrayList<JPanel>(); private ArrayList<JTable> ergebnisTabelle = new ArrayList<JTable>(); private JTabbedPane tabbedPane = new JTabbedPane(JTabbedPane.LEFT,JTabbedPane.SCROLL_TAB_LAYOUT); private static JCheckBox checkBoxAutoStart = new JCheckBox("mit Windows starten (SysTray)"); private Image icon = Toolkit.getDefaultToolkit().getImage("unbenannt.gif"); public MyGui() { super("SEC"); frame = this; setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); setLayout(null); setSize(500, 400); setIconImage(icon); // Set Look & Feel try { javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager .getCrossPlatformLookAndFeelClassName()); } catch (Exception e) { e.printStackTrace(); } //SystemTray if (SystemTray.isSupported()) { SystemTray sysTray = SystemTray.getSystemTray(); //create popupmenu PopupMenu menu = new PopupMenu(); //create item MenuItem open = new MenuItem("Öffnen"); menu.add(open); //add action listener to the item in the popup menu open.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { setVisible(true); WriteProperties.write(); } }); //create item MenuItem exit = new MenuItem("Beenden"); //add item to menu menu.add(exit); //add action listener to the item in the popup menu exit.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { WriteProperties.write(); System.exit(0); } }); //create system tray icon. TrayIcon trayIcon = new TrayIcon(icon, "Stisys Ergebnis Checker", menu); //add the tray icon to the system tray. try { sysTray.add(trayIcon); } catch(AWTException e) { System.out.println("System Tray unsupported!"); } } // Benutzername Label JLabel usernameLabel = new JLabel("Benutzername:"); usernameLabel.setBounds(10, 13, (int) usernameLabel.getPreferredSize() .getWidth(), 10); add(usernameLabel); // Passwort Label JLabel passwordLabel = new JLabel("Passwort:"); passwordLabel.setBounds(110, 13, (int) passwordLabel.getPreferredSize() .getWidth(), 10); add(passwordLabel); //Usernamefeld usernameField.setBounds(10, 25, 90, 20); add(usernameField); // Passwortfeld passwordField.setBounds(110, 25, 90, 20); add(passwordField); //Ergebnisse holen Button hinzufügen updateExams.setActionCommand("update"); updateExams.addActionListener(this); updateExams.setBounds(210, 25, 150, 20); add(updateExams); // TabbedPane hinzufügen mit leerer Übersicht String[][] ergebnisse = { { "", "" }, { "Keine", "Ergebnisse" } }; String[] columnNames = { "Kurs", "Note" }; ergebnisTabelle.add(new JTable(ergebnisse, columnNames)); ergebnisTabelle.get(0).setPreferredScrollableViewportSize( new Dimension(390, 160)); scrollPaneList.add(new JScrollPane(ergebnisTabelle.get(0))); scrollPaneList.get(0).setViewportView(ergebnisTabelle.get(0)); panelList.add(new JPanel()); panelList.get(0).add(scrollPaneList.get(0)); tabbedPane.addTab("Übersicht", panelList.get(0)); tabbedPane.setBounds(10, 70, 480, 200); add(tabbedPane); //AutostartOption hinzufügen checkBoxAutoStart.setBounds(7, 350, (int) checkBoxAutoStart .getPreferredSize().getWidth(), 15); checkBoxAutoStart.setActionCommand("autostart"); checkBoxAutoStart.addActionListener(this); add(checkBoxAutoStart); JButton sysTray = new JButton("in SysTray minimieren"); sysTray.setActionCommand("systray"); sysTray.addActionListener(this); sysTray.setBounds(320, 345, (int) sysTray.getPreferredSize() .getWidth(), 20); add(sysTray); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { @SuppressWarnings("unused") MyGui window = new MyGui(); } }); } public void actionPerformed(ActionEvent e) { // In Systray minimieren if ("systray".equals(e.getActionCommand())) { setVisible(false); WriteProperties.write(); //AutostartOption } else if ("autostart".equals(e.getActionCommand())) { //Autostart aktivieren durch Registryeintrag if (checkBoxAutoStart.isSelected()) { WriteProperties.write(); try { FileWriter fw = new FileWriter( System.getProperty("user.dir") + "\\sec.reg"); BufferedWriter out = new BufferedWriter(fw); out.write("Windows Registry Editor Version 5.00"); out.newLine(); out.newLine(); out.write("[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]"); out.newLine(); out.newLine(); String tmp = (new File("sec.reg")).getAbsolutePath() .toString(); tmp = tmp.replace("\\", "\\\\"); out.write("\"Stisys Ergebnis Checker\"=\"" + tmp + "\""); System.out.println(tmp); out.close(); fw.close(); String s = "regedit /s sec.reg"; Runtime.getRuntime().exec(s); } catch (IOException e1) { } //Autostart deaktivieren } else { try { FileWriter fw = new FileWriter( System.getProperty("user.dir") + "\\sec.reg"); BufferedWriter out = new BufferedWriter(fw); out.write("Windows Registry Editor Version 5.00"); out.newLine(); out.newLine(); out.write("[HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run]"); out.newLine(); out.newLine(); String tmp = System.getProperty("user.dir"); tmp = tmp.replace("\\", "\\\\"); out.write("\"Stisys Ergebnis Checker\"=-"); out.close(); fw.close(); tmp = System.getProperty("user.dir"); tmp = tmp.replace("\\", "\\\\"); String s = "regedit /s sec.reg"; Runtime.getRuntime().exec(s); } catch (IOException e1) { } } } } public static JFrame getFrame() { return frame; } }
Und schau dir am besten mal noch die Klasse Preferences in der Java API an. Da ich gesehen habe, dass du einen Eintrag in die Regestry machen willst. Oder hier im Tutorials-Forum.Geändert von Fabio Hellmann (16.08.11 um 09:00 Uhr)
Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
Joooooooo so gehts, stimmt, ich erstelle ja einen neuen Frame unten. Super Danke dass du mir geholfen hast. Ich wünsch dir nen schönen Tag!
-
16.08.11 09:18 #11
Super, freut mich. Wenn dein Problem damit behoben ist, kannst du das Thema auch als erledigt markieren.

Und auch dir einen schönen Tag.Bitte die Code-Tags verwenden. Bei Java-Code: [java]...[/java]
Tutorials:
Automatisches erzeugen eines Inhaltsverzeichnisses (Javascript)
JAnimationPanel - Animationen für Swing/AWT
SWTRatingBar (Bewertungs-Composite) selbst programmieren
____________________________________________________________________________
Über eine Bewertung (Stern links unter dem Beitrag) oder ein Danke freue ich mich sehr.
-
16.08.11 09:51 #12
- Registriert seit
- Jun 2009
- Beiträge
- 870
Unter http://download.oracle.com/javase/7/...eferences.html findet ihr eine deutlich neuere Version der Dokumentation von java.util.prefs.Preferences.
Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
-
16.08.11 14:52 #13SE Tutorials.de Gastzugang
Als kleinen Tipp : was mir auf gefallen ist sind deine Kilometer an IMPORT-Anweisungen. Warum nutzt du keine Wildcard ? Sieh dir mal UIManager an ... da musst du den kompletten package-Pfad angeben weil du es nicht importiert hast. Das geht doch auch einfacher :
Mach dir mal den Spass und lad dir mal das Programm "JAD" , das ist ein JavaDecompiler. Dann kannst du dir mal ansehen wie eng der deine 35 Zeilen IMPORT in diese 6 Zeilen zusammendrückt die ich dir gepostet habe. Mich wundert es auch das wenn du Eclipse benutzt dieses da nicht die Initiligenz besitzt das mal für dich zu machen *gerade was die absolute Angabe vom UIManager angeht*.Code java:1 2 3 4 5 6
import java.awt.*; import java.awt.event.*; import java.awt.geom.*; import java.util.*; import java.io.*; import javax.swing.*;
-
16.08.11 15:17 #14SE Tutorials.de Gastzugang
FALSCH !
import-Anweisungen haben NICHTS damit zu tun wie groß die Klasse oder das Jar wird. Die import-Anweisungen sagen dem Compiler lediglich wo die verwendeten Klassen liegen *in Bezug zum Classpath* und der VM welche Klassen sie zur Runtime laden soll. Außerdem macht der Compiler wie ich bereits sagte in der pre-compile-Phase daraus eh nur diese wenigen Zeilen weil das etwas mit Optimierung zu tun und die Klasse dadurch sogar ein paar Bytes kleiner wird.
Bevor du solche "schlauen" Behauptungen aufstellst befasse dich bitte nächste mal erstmal mit einem solchen Thema da es sonst leicht peinlich für dich wird. Du kannst es ja mal mit dem JAD ausprobieren.
-
16.08.11 16:39 #15
- Registriert seit
- Jun 2009
- Beiträge
- 870
@SPiKEe: Eclipse kann automatisch Imports generieren. Dabei werden immer einzelne Klassen oder Interfaces importiert, niemals ganze Pakete. Der Grund ist die Sichtbarkeit: wenn ich nur z.B. 2 Klassen aus javax.swing brauche, brauche ich keinen Zugriff auf die anderen Klassen.
Ob sich das auf ein echtes Programm auswirkt, kann ich nicht beurteilen. Im Zweifelsfalle würde ich aber die einzelnen Imports bevorzugen, da sie möglicherweise zu weniger geladenen Klassen führen.Code bitte so einfügen: [java]System.out.println("Hallo");[/java] (Analog für andere Programmiersprachen)
hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.Code java:1
System.out.println("Hallo");
___________
Ubuntu Bug #1: Microsoft has a majority market share
Casecon: Projekt leiser Käse
Ähnliche Themen
-
getResource liefert permanent NullPointerException
Von fReAkgoesTutorials im Forum JavaAntworten: 9Letzter Beitrag: 09.06.11, 22:11 -
Online Händler liefert nicht obwohl lieferbar im Shop
Von interface im Forum Buchführung, Recht, Steuer & Co.Antworten: 8Letzter Beitrag: 17.06.07, 15:40 -
Online Händler liefert nicht obwohl lieferbar im Shop
Von interface im Forum Gründung & GewerbeAntworten: 0Letzter Beitrag: 21.02.07, 23:56 -
1,2 GH obwohl 2,0 vorhanden angezeigt?
Von Irgendjemand_1 im Forum HardwareAntworten: 9Letzter Beitrag: 20.01.06, 13:40 -
1 CD-Laufwerk zuviel obwohl nicht vorhanden!?
Von digiTAL im Forum Microsoft WindowsAntworten: 4Letzter Beitrag: 23.08.04, 11:10





Zitieren
Login





