tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
15
ZUGRIFFE
423
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    tommey tommey ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    18
    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:
    Code :
    1
    
    TrayIcon trayIcon = new TrayIcon(icon, "SEC", menu);
    ein TrayIcon adde.

    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?
     

  2. #2
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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

    Fabio
     
    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.

  3. #3
    SE 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.
     

  4. #4
    tommey tommey ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    18
    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)
     

  5. #5
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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

    Fabio
     
    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.

  6. #6
    tommey tommey ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    18
    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
     

  7. #7
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    Setz den Teil deines Codes mal an den Anfang vom Constructor.

    Code java:
    1
    2
    3
    4
    5
    
            frame = new JFrame("SEC");
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setLocationRelativeTo(null);
            frame.setLayout(null);
            frame.setSize(500, 400);
     
    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.

  8. #8
    tommey tommey ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    18
    Das bewirkt keine Änderung, das Icon im Tray ist da, aber nicht anstelle der tasse.
    Mit dem LookAndFeel hängt das nicht zusammen oder?
     

  9. #9
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  10. #10
    tommey tommey ist offline Mitglied
    Registriert seit
    Aug 2011
    Beiträge
    18
    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!
     

  11. #11
    Avatar von Fabio Hellmann
    Fabio Hellmann Fabio Hellmann ist offline Mitglied Brokat
    Registriert seit
    Aug 2011
    Ort
    München
    Beiträge
    494
    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.

  12. #12
    genodeftest genodeftest ist offline Mitglied Brillant
    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)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

  13. #13
    SE 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 :
    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.*;
    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*.
     

  14. #14
    SE 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.
     

  15. #15
    genodeftest genodeftest ist offline Mitglied Brillant
    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)
    Code java:
    1
    
    System.out.println("Hallo");
    hilfreich zu Java: Really Big Index, Java ist auch eine Insel Band 1 und Band 2.
    ___________
    Ubuntu Bug #1: Microsoft has a majority market share
    Casecon: Projekt leiser Käse

Ähnliche Themen

  1. getResource liefert permanent NullPointerException
    Von fReAkgoesTutorials im Forum Java
    Antworten: 9
    Letzter Beitrag: 09.06.11, 22:11
  2. Online Händler liefert nicht obwohl lieferbar im Shop
    Von interface im Forum Buchführung, Recht, Steuer & Co.
    Antworten: 8
    Letzter Beitrag: 17.06.07, 15:40
  3. Online Händler liefert nicht obwohl lieferbar im Shop
    Von interface im Forum Gründung & Gewerbe
    Antworten: 0
    Letzter Beitrag: 21.02.07, 23:56
  4. 1,2 GH obwohl 2,0 vorhanden angezeigt?
    Von Irgendjemand_1 im Forum Hardware
    Antworten: 9
    Letzter Beitrag: 20.01.06, 13:40
  5. 1 CD-Laufwerk zuviel obwohl nicht vorhanden!?
    Von digiTAL im Forum Microsoft Windows
    Antworten: 4
    Letzter Beitrag: 23.08.04, 11:10