Unbekannter Fehler
-
hi,
ich bin derzeit noch bei mich in Java einzuarbeiten und bekomme mal wieder die Fehlermeldung von Eclipse:"Exception in thread "main" java.lang.Error: Unresolved compilation problem:
No enclosing instance of type Bilderbuch is accessible. Must qualify the allocation with an enclosing instance of type Bilderbuch (e.g. x.new A() where x is an instance of Bilderbuch).at Bilderbuch.main(Bilderbuch.java:39)"
Was heiß das genau und wie kann ich das Problem beheben? Danke für eure Hilfe.
import javax.imageio.ImageIO; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.geom.AffineTransform; import java.awt.geom.PathIterator; import java.awt.geom.Point2D; import java.awt.geom.Rectangle2D; import java.awt.image.BufferedImage; import java.awt.image.BufferedImageOp; import java.io.File; import java.net.URL; public class Bilderbuch extends JPanel{ private static final long serialVersionUID = 1L; public static void main(String[] args){ JFrame frame = new JFrame("Test"); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(800, 600); JPanel panel = new JPanel(); frame.add(panel); JButton button = new JButton("Click here"); panel.add(button); button.addActionListener(new Action()); //---- new code JPanel picpanel = new JPanel(); JScrollPane sc = new JScrollPane(); panel.add(sc); sc.setVisible(true); sc.setViewportView(picpanel); picpanel.setVisible(true); picpanel.setSize(100, 100); newclass n; try{ n = new newclass(); // <------- Fehlermeldung n.repaint(); }catch(Exception e){ n = null; } //picpanel.add(p); } public class newclass extends JPanel{ private static final long serialVersionUID = 1L; private BufferedImage i; public newclass(){ try{ i = ImageIO.read( new File("C:/kopie server/Schule/Studium/Semester 5/pic/roentgenbild.jpg" ) ); }catch(Exception e){ i = null; } } @Override protected void paintComponent( Graphics g ) { Graphics2D g2d = (Graphics2D) g; g2d.drawImage(i, null, 2500, 2500); } } static class Action implements ActionListener{ public void actionPerformed (ActionEvent e){ JFrame frame2 = new JFrame("Clicked"); frame2.setVisible(true); frame2.setSize(200, 200); JLabel label = new JLabel("You clicked me!"); JPanel panel = new JPanel(); frame2.add(panel); panel.add(label); } } }
-
Es steht eigentlich im Fehler genau drin:
fluffy17 schrieb:
(e.g. x.new A() where x is an instance of Bilderbuch).
"newclass" ist eine inner class, weil du sie innerhalb einer anderen Klasse geschrieben hast ( http://java.sun.com/docs/books/tutorial/java/javaOO/innerclasses.html ). Also muss es "n = this.new newclass();" heißen.
-
super vielen vielen Dank