P
Pennywiser
Gast
Hallo hab mal ne frage bzw. ein problem. Hab das folgende Programm in der Schule gemacht, wir sollten dann noch ne zusatzaufgabe machen. als ich nun fertig war und den folgenden Quelltext hatte. hab ich das programm mal gestartet... das erste applet öffnet sich einwand frei nur wenn man dann auf "open" klickt bekomme ich ne fehlermeldung "java.lang.NullPointerException"
weiss jemand was das ist oda wie man es behebt??
vielen dank im voraus
Code:
weiss jemand was das ist oda wie man es behebt??
vielen dank im voraus
Code:
Code:
import java.awt.*;
import java.awt.event.*;
import java.applet.*;
public class Third extends Applet implements ActionListener
{
private TestWindow myWindow;
private Button buttonOpen;
private Button buttonEnlarge;
private Button buttonReduce;
private Button buttonClose;
private int sizeX = 0;
private int sizeY = 0;
public void init()
{
setLayout (new FlowLayout (FlowLayout.LEFT, 2, 0));
setBackground (Color.white);
buttonOpen = new Button ("Open");
buttonEnlarge = new Button ("Enlarge");
buttonReduce = new Button ("Reduce");
buttonClose = new Button ("Close");
add (buttonOpen);
add (buttonEnlarge);
add (buttonReduce);
add (buttonClose);
buttonOpen.addActionListener (this);
buttonEnlarge.addActionListener (this);
buttonReduce.addActionListener (this);
buttonClose.addActionListener (this);
buttonEnlarge.setEnabled (false);
buttonReduce.setEnabled (false);
buttonClose.setEnabled (false);
}
public void actionPerformed (ActionEvent event)
{
if (event.getSource () == buttonOpen) { openWindow (); } else
if (event.getSource () == buttonEnlarge) { enlargeWindow (); } else
if (event.getSource () == buttonReduce) { reduceWindow (); } else
if (event.getSource () == buttonClose) { closeWindow (); }
}
private void openWindow ()
{
if (myWindow == null)
{
sizeX = 300;
sizeY = 200;
myWindow = new TestWindow ("TestWindow", sizeX, sizeY);
myWindow.show ();
buttonOpen.setEnabled (false);
buttonEnlarge.setEnabled (true);
buttonReduce.setEnabled (true);
buttonClose.setEnabled (true);
}
}
private void enlargeWindow ()
{
if (myWindow != null)
{
myWindow.setSize (sizeX += 100, sizeY += 100);
myWindow.requestFocus ();
}
}
private void reduceWindow ()
{
if (myWindow != null)
{
if ((sizeX >= 100) & (sizeY >= 100))
{
myWindow.setSize (sizeX -= 100, sizeY -= 100);
myWindow.requestFocus ();
}
}
}
private void closeWindow ()
{
if (myWindow != null)
{
myWindow.dispose ();
myWindow = null;
buttonOpen.setEnabled (true);
buttonEnlarge.setEnabled (false);
buttonReduce.setEnabled (true);
buttonClose.setEnabled (false);
}
}
}
und TestWindow
Code:
import java.awt.*;
import java.awt.event.*;
public class TestWindow extends Frame implements ActionListener
{
private MenuBar menuBar;
private Menu menuFile;
private Menu menuColors;
private Menu menuGraphic;
private Menu menuWindow;
private MenuItem itemFirst;
private MenuItem itemSecond;
private MenuItem itemBlue;
private MenuItem itemYellow;
private MenuItem itemGreen;
private MenuItem itemRectangle;
private MenuItem itemTriangle;
private MenuItem itemOval;
private MenuItem itemLine;
private MenuItem itemClear;
private MenuItem itemClose;
private String symbol;
private String pushedItem;
private String showString = "";
public TestWindow (String frameTitle, int x, int y)
{
super (frameTitle);
menuBar = new MenuBar ();
setMenuBar (menuBar);
menuFile = new Menu ("File");
menuBar.add (menuFile);
itemFirst = new MenuItem ("First");
itemSecond = new MenuItem ("Second");
itemFirst.addActionListener (this);
itemSecond.addActionListener (this);
menuFile.add (itemFirst);
menuFile.add (itemSecond);
menuColors = new Menu ("Colors");
menuBar.add (menuColors);
itemBlue = new MenuItem ("Blue");
itemYellow = new MenuItem ("Yellow");
itemGreen = new MenuItem ("Green");
itemBlue.addActionListener (this);
itemYellow.addActionListener (this);
itemGreen.addActionListener (this);
menuColors.add (itemBlue);
menuColors.add (itemYellow);
menuColors.add (itemGreen);
menuWindow = new Menu ("Graphic");
menuBar.add (menuGraphic);
itemRectangle = new MenuItem ("Rectangle");
itemTriangle = new MenuItem ("Triangle");
itemOval = new MenuItem ("Circle");
itemLine = new MenuItem ("Line");
itemRectangle.addActionListener (this);
itemTriangle.addActionListener (this);
itemOval.addActionListener (this);
itemLine.addActionListener (this);
menuGraphic.add (itemRectangle);
menuGraphic.add (itemTriangle);
menuGraphic.add (itemOval);
menuGraphic.add (itemLine);
menuWindow = new Menu ("Window");
menuBar.add (menuWindow);
itemClear = new MenuItem ("Clear");
itemClose = new MenuItem ("Close");
itemClear.addActionListener (this);
itemClose.addActionListener (this);
menuWindow.add (itemClear);
menuWindow.addSeparator ();
menuWindow.add (itemClose);
addWindowListener (new WindowAdapter ()
{ public void windowClosing (WindowEvent windowEvent)
{ dispose (); }} );
Cursor cursor = new Cursor (Cursor.CROSSHAIR_CURSOR);
setCursor (cursor);
setBackground (Color.white);
setSize (x, y);
}
public void actionPerformed (ActionEvent event)
{
pushedItem = event.getActionCommand ();
if (event.getSource () == itemFirst) { showMessage (); } else
if (event.getSource () == itemSecond) { showMessage (); } else
if (event.getSource () == itemBlue) { setWindowBackground (Color.blue); } else
if (event.getSource () == itemYellow) { setWindowBackground (Color.yellow); } else
if (event.getSource () == itemGreen) { setWindowBackground (Color.green); } else
if (event.getSource () == itemRectangle){ setSymbol ("r"); } else
if (event.getSource () == itemTriangle) { setSymbol ("t"); } else
if (event.getSource () == itemOval) { setSymbol ("o"); } else
if (event.getSource () == itemLine) { setSymbol ("l"); } else
if (event.getSource () == itemClear) { clearWindow (); } else
if (event.getSource () == itemClose) { closeWindow (); }
}
private void setSymbol(String symbol)
{
if(symbol == "r") {this.symbol = "Rectangle"; } else
if(symbol == "t") {this.symbol = "Triangle"; } else
if(symbol == "o") {this.symbol = "Oval"; } else
if(symbol == "l") {this.symbol = "Line"; }
repaint();
}
private void setWindowBackground (Color color)
{
setBackground (color);
}
private void showMessage ()
{
showString = "You took the " + pushedItem + " MenuItem!";
repaint ();
}
private void clearWindow ()
{
showString = "";
setBackground (Color.white);
repaint ();
}
private void closeWindow ()
{
dispose ();
}
public void paint (Graphics graphics)
{
graphics.drawString (showString, 10, 70);
if(this.symbol == "Rectangle"){graphics.drawRect (10, 50, 50, 50); } else
if(this.symbol == "Triangle")
{
int[] xs = {10,50,60,10};
int[] ys = {10,30,70,10};
graphics.drawPolygon (xs,ys,3);
}
else
if(this.symbol == "Oval"){graphics.drawOval (10, 50, 50, 50); } else
if(this.symbol == "Line"){graphics.drawLine (10, 50, 50, 50); }
}
}