De bedoeling is:
in xVeld wordt een waarde ingevuld
in yVeld wordt een waarde ingevuld
mbv invoer wordt daar een Point mee gecreeerd en in pLijst bijgevoegd
mbv teken wordt er een lijn tussen opeenvolgende punten getekend.
Code: Selecteer alles
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class TekenScherm2 extends JFrame implements ActionListener{
private PuntenLijst pLijst;
//PuntenLijst is een andere klasse waar een ArrayList met Points wordt gecreeerd etc. Deze werkt en extends JFrame.
private JLabel xLabel = new JLabel("X-coordinaat");
private JTextField xVeld = new JTextField(10);
private JLabel yLabel = new JLabel("Y-coordinaat");
private JTextField yVeld = new JTextField(10);
private JButton invoerKnop = new JButton("voer in");
private JButton tekenKnop = new JButton("teken");
private JPanel paneel = new JPanel();
private TekenPaneel tPaneel;
//TekenPaneel is een klasse die JPanel extends en een PuntenLijst tekent
public TekenScherm2(PuntenLijst pl){
tPaneel = new TekenPaneel(pl);
add(tPaneel);
add(paneel);
paneel.setLayout(new FlowLayout());
paneel.add(xLabel);
paneel.add(yLabel);
paneel.add(xVeld);
paneel.add(yVeld);
paneel.add(invoerKnop);
paneel.add(tekenKnop);
invoerKnop.addActionListener(this);
tekenKnop.addActionListener(this);
//titel van scherm
setTitle("TekenScherm2");
//wat gebeurt bij klikken kruis
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//formaat van scherm
setSize(500,500);
//locatie van scherm op beeldscherm (van linksboven)
setLocation(300,300);
//achtergrond van scherm
getContentPane().setBackground(Color.gray);
//zichtbaar maken van scherm
setVisible(true);
}
//acties voor invoer
public void actionPerformed(ActionEvent e){
String xIn;
String yIn;
//als invoer wordt aangeklikt
if(e.getSource() == invoerKnop){
xIn = new String(xVeld.getText());
int x = Integer.parseInt(xIn);
yIn = new String(yVeld.getText());
int y = Integer.parseInt(yIn);
Point p = new Point(x,y);
pLijst.voegToe(p);
}
//als teken wordt aangeklikt
if(e.getSource() == tekenKnop){
repaint();
}
}
//gebruikt de teken methode van tPaneel om te tekenen
public void paint(Graphics g){
tPaneel.teken(g);
}
public static void main(String[] args){
PuntenLijst pLijst = new PuntenLijst();
TekenScherm2 ts = new TekenScherm2(pLijst);
}
}