Iyon Skrevet 20. februar 2007 Skrevet 20. februar 2007 Heisann har et insekt i min applikasjon som jeg frustrerende nok ikke finner kilden til: Exception in thread "main" java.lang.NullPointerException at sun.awt.windows.WPanelPeer.restack(Unknown Source) at sun.awt.windows.WPanelPeer.restack(Unknown Source) at sun.awt.windows.WPanelPeer.restack(Unknown Source) at sun.awt.windows.WPanelPeer.restack(Unknown Source) at sun.awt.windows.WPanelPeer.restack(Unknown Source) at sun.awt.windows.WPanelPeer.restack(Unknown Source) at sun.awt.windows.WPanelPeer.restack(Unknown Source) at sun.awt.windows.WWindowPeer.restack(Unknown Source) at java.awt.Container.addNotify(Unknown Source) at java.awt.Window.addNotify(Unknown Source) at java.awt.Frame.addNotify(Unknown Source) at java.awt.Window.show(Unknown Source) at java.awt.Component.show(Unknown Source) at java.awt.Component.setVisible(Unknown Source) at java.awt.Window.setVisible(Unknown Source) at org.bio.sigve.gui.JStatusBar.main(JStatusBar.java:56) Feilen oppstår hvis jeg adder en instans av følgende klasse til en JFrame. Main-metoden i denne koden frembringer feilen: import java.awt.BorderLayout; import java.awt.Component; import java.awt.FlowLayout; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.border.BevelBorder; public class JStatusBar extends JPanel { private Component[] columns; public JStatusBar(){ super(new FlowLayout()); setBorder(new BevelBorder(BevelBorder.LOWERED)); createJStatusBar(1); } public JStatusBar(int cols) { super(new FlowLayout()); createJStatusBar(cols); } private void createJStatusBar(int cols) { columns = new JLabel[cols]; for(int i = 0; i<columns.length;i++) { columns[i] = new JLabel(""); JPanel p = new JPanel(); p.setBorder(new BevelBorder(BevelBorder.LOWERED)); //p.add(columns[i]); add(p); } } public void setComponent(Component c, int index) { } public Component getComponent(int index) { return null; } public void setText(String text, int index) { ((JLabel)columns[index]).setText(text); } public static void main(String[] args) { JFrame f = new JFrame(); JPanel rot = new JPanel(new BorderLayout()); f.getContentPane().add(rot); JStatusBar status = new JStatusBar(); rot.add(status); status.setText("Hei!", 0); f.setVisible(true); } }
v3g4rd Skrevet 20. februar 2007 Skrevet 20. februar 2007 Det var ikke så lett å se feilen gjennom koden din der.. Kan du legge ut hele kildekoden i en pastebin, og legge inn linken her?
Iyon Skrevet 20. februar 2007 Forfatter Skrevet 20. februar 2007 Hehe, fant ut at jeg ubevisst overrider JPanel.getComponent, og når den ikke er implementert ordentlig, feiler det når vindussystemet setter opp vinduet
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå