Ktoś doradzi co jest źle ?
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
public class Figures extends JFrame implements ActionListener {
//Surface surface;
public JMenuBar menuBar;
public JMenu mMenu,mDrawing;
public JMenuItem mWheel,mSquare,mPolygon,mEdit,mInfo,mExit;
public JLabel jX,jY,jHeight,jWidth;
public JTextField tX,tY,tHeight,tWidth;
public Figures() {
initUI();
}
//private void initUI() {
public void initUI() {
setTitle("Figures"); //Paramaetry okienka
setSize(800, 600);
setResizable(false);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
add(new Surface());
jX = new JLabel("X:"); //Tworzę etykiety
jY = new JLabel("Y:");
jHeight = new JLabel("Height:");
jWidth = new JLabel("Width:");
jX.setBounds(210,500,40,30); //Ustawiam etykiety
jY.setBounds(280,500,40,30);
jWidth.setBounds(350,500,80,30);
jHeight.setBounds(450,500,80,30);
add(jX);add(jY);add(jWidth);add(jHeight); //Dodaje etykiety
tX = new JTextField(""); //Tworzę pola tekstowe
tY = new JTextField("");
tHeight = new JTextField("");
tWidth = new JTextField("");
tX.setBounds(230,500,40,30); //Ustawiam pola tekstowe
tY.setBounds(300,500,40,30);
tWidth.setBounds(400,500,40,30);
tHeight.setBounds(510,500,40,30);
add(tX);add(tY);add(tWidth);add(tHeight); //Dodaje pola tekstowe
menuBar = new JMenuBar(); //Tworzę pasek menu
setJMenuBar(menuBar);
mMenu = new JMenu("Menu");
menuBar.add(mMenu);
mDrawing = new JMenu("Drawing"); //Tworzę pozycje w menu
mEdit = new JMenuItem("Edit");
mExit = new JMenuItem("Exit");
mInfo = new JMenuItem("Information");
mPolygon = new JMenuItem("Polygon");
mSquare = new JMenuItem("Square");
mWheel = new JMenuItem("Wheel");
mMenu.add(mDrawing); //Dodaje pozycje do menu
mMenu.addSeparator();
mMenu.add(mEdit);
mMenu.addSeparator();
mMenu.add(mInfo);
mMenu.addSeparator();
mMenu.add(mExit);
mDrawing.add(mPolygon);
mDrawing.addSeparator();
mDrawing.add(mSquare);
mDrawing.addSeparator();
mDrawing.add(mWheel);
mPolygon.addActionListener(this); //Dodaje słuchaczy
mWheel.addActionListener(this);
mSquare.addActionListener(this);
mEdit.addActionListener(this);
mInfo.addActionListener(this);
mExit.addActionListener(this);
}
public static void main(String[] args) {
Figures ex = new Figures();
ex.setVisible(true);
}
public void Test(){System.out.println("dupa");}
@Override
public void actionPerformed(ActionEvent ev) {
Object souorce = ev.getSource();
if(souorce == mEdit){
System.out.println("Edit");
}
else if(souorce == mWheel){
}
else if(souorce == mInfo){
}
else if(souorce == mExit){
dispose();
System.exit(0);
}
}
}
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
public class Surface extends JPanel{
Figures figures;
private ZRectangle zrect;
private ZEllipse zell;
public Surface() {
initUI();
}
public void initUI() {
setBounds(0,0,800,500);
MovingAdapter ma = new MovingAdapter();
addMouseMotionListener(ma);
addMouseListener(ma);
addMouseWheelListener(new ScaleHandler());
figures.tX.setText("coś"); // <------------------------------- tu mi pokazuje NullPionter
//figures.Test();
zrect = new ZRectangle(50, 50, 50, 50);
zell = new ZEllipse(150, 70, 80, 80);
}
private void doDrawing(Graphics g) {
Graphics2D g2d = (Graphics2D)g;
Font font = new Font("Serif", Font.BOLD, 40);
g2d.setFont(font);
g2d.setPaint(new Color(141, 40, 200));
g2d.fill(zrect);
g2d.setPaint(new Color(5, 98, 100));
g2d.fill(zell);
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
doDrawing(g);
}
}