Springen naar inhoud

[java] gui


  • Log in om te kunnen reageren

#1

wesleyc

    wesleyc


  • >25 berichten
  • 99 berichten
  • Ervaren gebruiker

Geplaatst op 29 november 2011 - 22:37

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.



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?

Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

wesleyc

    wesleyc


  • >25 berichten
  • 99 berichten
  • Ervaren gebruiker

Geplaatst op 01 december 2011 - 14:26

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.

#3

Xenion

    Xenion


  • >1k berichten
  • 2606 berichten
  • Moderator

Geplaatst op 02 december 2011 - 11:59

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.





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures