#1 6. September 2010 Applet getParameter() Null-Pointer Hi Leute hab momentan aus meiner sicht ein unerklärbares Problem. Es handel sich dabei um ein Java-Applet (JApplet) welches Parameter der Webseite bekommt, eine SessionID und GallerienIDs. Allerdings wird immer eine NullPointer Exception ausgelöst sobald ich getParameter("galleries") oder getParameter("sessionID") aufrufe. Fehlermeldung Code: java.lang.NullPointerException at java.applet.Applet.getParameter(Unknown Source) at view.ZwischenablageUploader.initGUI(ZwischenablageUploader.java:79) at view.ZwischenablageUploader.<init>(ZwischenablageUploader.java:60) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) at java.lang.reflect.Constructor.newInstance(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at sun.applet.AppletPanel.createApplet(Unknown Source) at sun.applet.AppletPanel.runLoader(Unknown Source) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Hier der Code: Code: package view; import java.util.Vector; import javax.swing.ComboBoxModel; import javax.swing.DefaultComboBoxModel; import javax.swing.GroupLayout; import javax.swing.JApplet; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JProgressBar; import javax.swing.LayoutStyle; import javax.swing.SwingUtilities; import logic.get.GalleryNameClient; import logic.model.Gallery; import view.listener.UploadButtonActionListener; import view.text.Text; /** * Grafical user interface of the clipboarduploader * @author Frank Roth * */ public class ZwischenablageUploader extends JApplet { private static final long serialVersionUID = -1812729455663662739L; private static JButton uploadButton; private static JProgressBar progressBar; private JLabel jLabel2; private JComboBox galleriesComboBox; private JLabel jLabel3; private static ZwischenablageUploader applet; { //Set Look & Feel try { javax.swing.UIManager.setLookAndFeel(javax.swing.UIManager.getSystemLookAndFeelClassName()); } catch(Exception e) { e.printStackTrace(); } } public ZwischenablageUploader() { super(); initGUI(); } private void initGUI() { try { GroupLayout thisLayout = new GroupLayout((JComponent)getContentPane()); getContentPane().setLayout(thisLayout); uploadButton = new JButton(); uploadButton.setText(Text.TEXT_UPLOAD_BUTTON); { jLabel2 = new JLabel(); jLabel2.setText("hochladen in Gallery"); } { // Init gallery names Vector<Gallery> galleryVector = new Vector<Gallery>(); String galleriesString = new String(); [COLOR="Red"]galleriesString = getParameter("galleries");[/COLOR] System.out.println("Debug"); if(galleriesString != null){ String galleries[] = galleriesString.split("[\\[\\]]+"); galleryVector.add(new Gallery("", "---- keine ----")); for(String key : galleries){ galleryVector.add(GalleryNameClient.getGalleryByKeyname(key)); } } ComboBoxModel galleriesComboBoxModel = new DefaultComboBoxModel(galleryVector); galleriesComboBox = new JComboBox(); galleriesComboBox.setModel(galleriesComboBoxModel); } { jLabel3 = new JLabel(); jLabel3.setText("bereits hochgeladen"); } uploadButton.addActionListener(new UploadButtonActionListener()); progressBar = new JProgressBar(); progressBar.setStringPainted(true); thisLayout.setVerticalGroup(thisLayout.createSequentialGroup() .addComponent(jLabel2, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(galleriesComboBox, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addPreferredGap(LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel3, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addComponent(progressBar, GroupLayout.PREFERRED_SIZE, 22, GroupLayout.PREFERRED_SIZE) .addComponent(uploadButton, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE)); thisLayout.setHorizontalGroup(thisLayout.createParallelGroup() .addGroup(GroupLayout.Alignment.LEADING, thisLayout.createSequentialGroup() .addComponent(jLabel2, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addGap(0, 326, Short.MAX_VALUE)) .addComponent(galleriesComboBox, GroupLayout.Alignment.LEADING, 0, 422, Short.MAX_VALUE) .addGroup(GroupLayout.Alignment.LEADING, thisLayout.createSequentialGroup() .addComponent(jLabel3, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE, GroupLayout.PREFERRED_SIZE) .addGap(0, 325, Short.MAX_VALUE)) .addComponent(progressBar, GroupLayout.Alignment.LEADING, 0, 422, Short.MAX_VALUE) .addComponent(uploadButton, GroupLayout.Alignment.LEADING, 0, 422, Short.MAX_VALUE)); applet = this; this.setSize(422, 99); getContentPane().setBackground(new java.awt.Color(255,255,255)); } catch (Exception e) { e.printStackTrace(); } } public static JProgressBar getProgressBar() { return progressBar; } public static JButton getUploadButton() { return uploadButton; } public static ZwischenablageUploader getApplet() { return applet; } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { ZwischenablageUploader inst = new ZwischenablageUploader(); inst.setVisible(true); } }); } } Habe die Parameter natürlich in meinem Eclipse gesetzt aber funktioniert einfach nicht... Über Hilfe würde ich mich sehr freuen^^. + Multi-Zitat Zitieren
#2 8. September 2010 AW: Applet getParameter() Null-Pointer Die "" weg oder mit String s = String.ValueOf(variable); wenn es kein String ist. Du willst ja den Wert der Variable übergeben, wenn du einen Text mit getParameter übergibst, dann gibt es Fehler. + Multi-Zitat Zitieren
#3 9. September 2010 AW: Applet getParameter() Null-Pointer erstmal danke für deine Antwort, aber dass verstehe ich nicht wirklich? getParameter("name"); gibt doch bei einem Applet den Wert vom Parameter name zurück, oder verstehe ich das falsch? Wo muss ich denn die änderung vornehmen? Sorry steh grad aufm schlauch^^ Hier der HTML Code dazu: Code: <applet code="view/ZwischenablageUploader.class" archive="ZwischenablageUploader.jar" width="100%" height="60"> <param name="session" value="0d02fc1b7f9c684c16a2bb6cbc281a88"/> <param name="galleries" value="c304ab3,c217762,9afb8a4,baf52fe,d1ea2a5,924d2a,d24af88"/> </applet> + Multi-Zitat Zitieren