Archief - Java KnopHandler/Polygoon/Inkleuren

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Borko

Legacy Member
Hoi!

Ik zou dus via een KnopHandler een polygoon moeten inkleuren maar ik heb overal al gezocht maar ik kan die *********** command maar niet vinden. Niet in mijn handboek, niet online dus de kans bestaat dat die niet bestaat. ik copy paste even mijn code. Ik doe volgens mij iets fundamenteel fout dus rage away zou ik maar zeggen.

Ik denk dat ik fout zit bij de vetgedrukte tekst.

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Polygon;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;



public class Huis extends JPanel{

private JLabel Sterren;
private JTextField SterrenAantal;
private JButton SterrenOK;
private JButton Dag;
private JButton Nacht;


public Huis(){
setLayout(null); // lay-out manager uitschakelen

Sterren = new JLabel("Aantal sterren?");
SterrenAantal = new JTextField(1);
SterrenOK = new JButton("Ok");

Sterren.setBounds(10, 10, 110, 20);
SterrenAantal.setBounds(125, 10, 20, 20);
SterrenOK.setBounds(150, 10, 50, 20);

add(Sterren);
add(SterrenAantal);
add(SterrenOK);

Dag = new JButton ("Nacht");
Dag.setBackground(Color.BLACK);

Dag.addActionListener(new KnopHandler());

Dag.setBounds(250, 10, 100, 20);

add(Dag);

KnopHandler kh = new KnopHandler();
Dag.addActionListener( kh );

}

public void paintComponent(Graphics g){
super.paintComponent(g);
int[] xWaarden11 = {0, 0, 900, 900};
int[] yWaarden11 = {60, 0, 0, 60};
Polygon AchtergrondButtons = new Polygon(xWaarden11, yWaarden11, xWaarden11.length);
g.setColor(Color.CYAN);
g.fillPolygon(AchtergrondButtons);

int[] xWaarden1 = {550, 50, 50, 550};
int[] yWaarden1 = {750, 750, 250, 250};
Polygon Vierhoek = new Polygon(xWaarden1, yWaarden1, xWaarden1.length);
g.setColor(Color.DARK_GRAY);
g.fillPolygon(Vierhoek);

int[] xWaarden3 = {200, 100, 100, 200};
int[] yWaarden3 = {700, 700, 600, 600};
Polygon Raam1 = new Polygon(xWaarden3, yWaarden3, xWaarden3.length);
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Raam1);

int[] xWaarden4 = {500, 400, 400, 500};
int[] yWaarden4 = {700, 700, 600, 600};
Polygon Raam2 = new Polygon(xWaarden4, yWaarden4, xWaarden4.length);
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Raam2);

int[] xWaarden5 = {200, 100, 100, 200};
int[] yWaarden5 = {400, 400, 300, 300};
Polygon Raam3 = new Polygon(xWaarden5, yWaarden5, xWaarden5.length);
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Raam3);

int[] xWaarden6 = {500, 400, 400, 500};
int[] yWaarden6 = {400, 400, 300, 300};
Polygon Raam4 = new Polygon(xWaarden6, yWaarden6, xWaarden6.length);
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Raam4);

int[] xWaarden7 = {250, 350, 350, 250};
int[] yWaarden7 = {400, 400, 300, 300};
Polygon Raam5 = new Polygon(xWaarden7, yWaarden7, xWaarden7.length);
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Raam5);

int[] xWaarden8 = {250, 350, 350, 250};
int[] yWaarden8 = {750, 750, 600, 600};
Polygon Deur = new Polygon(xWaarden8, yWaarden8, xWaarden8.length);
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Deur);


int[] xWaarden2 = {550, 300, 50 };
int[] yWaarden2 = { 250, 100, 250 };
Polygon driehoek = new Polygon(xWaarden2, yWaarden2, xWaarden2.length);
g.setColor(Color.RED);
g.fillPolygon(driehoek);

int[] xWaarden9 = {900, 0, 0, 900};
int[] yWaarden9 = { 950, 950, 750, 750};
Polygon Voortuin = new Polygon(xWaarden9, yWaarden9, xWaarden9.length);
g.setColor(Color.GREEN);
g.fillPolygon(Voortuin);

}

class KnopHandler implements ActionListener {
public void actionPerformed( ActionEvent e ) {
if( e.getSource() == Dag ) {
Polygon Raam1.setColor(Color.YELLOW);
}


repaint();
}

}
}

ultddave

Legacy Member
Normaal gezien ga je die polygons 1x aanmaken en bijvoorbeeld als klassevariabelen opslaan in je klasse Huis. Nu ga je elke keer als je component hertekend wordt (paintComponent functie) die polygonen terug aanmaken met "new" en tekenen.

Als dat klassevariabelen zouden zijn, kan je ook gewoon aan je Raam1 variabele, nu gaat dat niet aangezien die lokaal in paintComponent gedeclareerd staat.

Mvg,
Dave

Borko

Legacy Member
ik heb gewoon een variabele aangemaakt en als deze op "dag" staat dan zijn mijn polygonen (ramen) grijs en als deze op nacht staat worden ze dus geel.

Mijn variable heb ik simpelweg verbonden met een Button waardoor het een veel makkelijkere oplossing was

Borko

Legacy Member
public Huis(){
setLayout(null); // lay-out manager uitschakelen

setBackground(Color.BLUE);

Sterren = new JLabel("Aantal sterren?");
SterrenAantal = new JTextField(1);
SterrenOK = new JButton("Ok");

Sterren.setBounds(10, 10, 110, 20);
SterrenAantal.setBounds(125, 10, 20, 20);
SterrenOK.setBounds(150, 10, 50, 20);

add(Sterren);
add(SterrenAantal);
add(SterrenOK);

Dag = new JButton ("Dag");
Nacht = new JButton ("Nacht");

Dag.addActionListener(new KnopHandlerDag());
Nacht.addActionListener(new KnopHandlerNacht());

Dag.setBounds(250, 10, 100, 20);
Nacht.setBounds(350, 10, 100, 20);

add(Dag);
add(Nacht);

MaanHoger = new JButton ("Hoger");
MaanLager = new JButton ("Lager");

MaanHoger.addActionListener(new KnopHandlerMaanHoger());
MaanLager.addActionListener(new KnopHandlerMaanLager());

MaanHoger.setBounds(450, 10, 100, 20);
MaanLager.setBounds(550, 10, 100, 20);

add(MaanHoger);
add(MaanLager);


}

public void paintComponent(Graphics g){
super.paintComponent(g);
int[] xWaarden11 = {0, 0, 900, 900};
int[] yWaarden11 = {60, 0, 0, 60};
Polygon AchtergrondButtons = new Polygon(xWaarden11, yWaarden11, xWaarden11.length);
g.setColor(Color.CYAN);
g.fillPolygon(AchtergrondButtons);

int[] xWaarden1 = {550, 50, 50, 550};
int[] yWaarden1 = {750, 750, 250, 250};
Polygon Vierhoek = new Polygon(xWaarden1, yWaarden1, xWaarden1.length);
g.setColor(Color.DARK_GRAY);
g.fillPolygon(Vierhoek);

int[] xWaarden3 = {200, 100, 100, 200};
int[] yWaarden3 = {700, 700, 600, 600};
Polygon Raam1 = new Polygon(xWaarden3, yWaarden3, xWaarden3.length);
if (DagNacht == "Dag"){
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Raam1);
} else{ ;
g.setColor(Color.YELLOW);
g.fillPolygon(Raam1);
}


int[] xWaarden4 = {500, 400, 400, 500};
int[] yWaarden4 = {700, 700, 600, 600};
Polygon Raam2 = new Polygon(xWaarden4, yWaarden4, xWaarden4.length);
if (DagNacht == "Dag"){
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Raam2);
} else{ ;
g.setColor(Color.YELLOW);
g.fillPolygon(Raam2);
}

int[] xWaarden5 = {200, 100, 100, 200};
int[] yWaarden5 = {400, 400, 300, 300};
Polygon Raam3 = new Polygon(xWaarden5, yWaarden5, xWaarden5.length);
if (DagNacht == "Dag"){
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Raam3);
} else{ ;
g.setColor(Color.YELLOW);
g.fillPolygon(Raam3);
}

int[] xWaarden6 = {500, 400, 400, 500};
int[] yWaarden6 = {400, 400, 300, 300};
Polygon Raam4 = new Polygon(xWaarden6, yWaarden6, xWaarden6.length);
if (DagNacht == "Dag"){
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Raam4);
} else{ ;
g.setColor(Color.YELLOW);
g.fillPolygon(Raam4);
}

int[] xWaarden7 = {250, 350, 350, 250};
int[] yWaarden7 = {400, 400, 300, 300};
Polygon Raam5 = new Polygon(xWaarden7, yWaarden7, xWaarden7.length);
if (DagNacht == "Dag"){
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Raam5);
} else{ ;
g.setColor(Color.YELLOW);
g.fillPolygon(Raam5);
}

g.fillOval(600, 300, 100, 100);
if (DagNacht == "Dag"){
g.setColor(Color.YELLOW);
g.fillOval(600, 300, 100, 100);
} else{ ;
g.setColor(Color.LIGHT_GRAY);
g.fillOval(600, 300, 100, 100);
}


int[] xWaarden8 = {250, 350, 350, 250};
int[] yWaarden8 = {750, 750, 600, 600};
Polygon Deur = new Polygon(xWaarden8, yWaarden8, xWaarden8.length);
g.setColor(Color.LIGHT_GRAY);
g.fillPolygon(Deur);


int[] xWaarden2 = {550, 300, 50 };
int[] yWaarden2 = { 250, 100, 250 };
Polygon driehoek = new Polygon(xWaarden2, yWaarden2, xWaarden2.length);
g.setColor(Color.RED);
g.fillPolygon(driehoek);


int[] xWaarden9 = {900, 0, 0, 900};
int[] yWaarden9 = { 950, 950, 750, 750};
Polygon Voortuin = new Polygon(xWaarden9, yWaarden9, xWaarden9.length);
g.setColor(Color.GREEN);
g.fillPolygon(Voortuin);






}

public class KnopHandlerDag implements ActionListener {

public void actionPerformed(ActionEvent arg0) {

DagNacht = "Dag";

setBackground(Color.BLUE);

repaint();
}

}


public class KnopHandlerNacht implements ActionListener {

public void actionPerformed(ActionEvent arg0) {

DagNacht = "Nacht";

setBackground(Color.BLACK);

repaint();
}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan