wesleyc
Artikelen: 0
Berichten: 99
Lid geworden op: wo 16 nov 2011, 16:17

[java] gui

Ik ben bezig met een grafische interface, maar het lukt me niet helemaal dus of jullie er even naar zouden willen kijken.

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);

}

}
De volgende stap is om met de muis punten aan te klikken, nog tips?
wesleyc
Artikelen: 0
Berichten: 99
Lid geworden op: wo 16 nov 2011, 16:17

Re: [java] gui

Probleem opgelost.

oplossing was:

In de Tekenmethode van Puntenlijst eerst een size-check doen (0 punten tekenen kan nog steeds niet :) )

en de super.paint(g) aanroepen in de paint methode van tekenscherm2.
Gebruikersavatar
Xenion
Artikelen: 0
Berichten: 2.609
Lid geworden op: za 21 jun 2008, 10:41

Re: [java] gui

Goed dat je het zelf hebt opgelost, kan je in de toekomst misschien wel vermelden wat er precies fout gaat? Dus wat werkt er wel/niet en welke foutmelding krijg je.

Terug naar “Informatica en programmeren”