Juzzz
Gebruiker
- Lid geworden
- 15 jan 2008
- Berichten
- 281
Ik ben wat aan het testen met het grafische gebeuren in java.
nou heb ik daar nog niet heel veel ervaring in dus probeer ik daar wat meer mee te doen.
nou wil ik een vierkantje op het scherm tekenen en dat ik met knoppen of de muis kan bepalen waar deze getekend wordt.
later wil ik meerdere vierkantjes die bewegen en dat er iets gebeurd als deze elkaar aanraken.
wat nu niet lukt:
- het vierkantje kan niet overal op het scherm zoals helemaal rechts of onder (boven de knoppen)
- De achtergrond veranderd niet van kleur.
programma:
Main.java
Window.java
DrawComponent.java
kan iemand mij een beetje de goede weg op helpen..
bedankt
nou heb ik daar nog niet heel veel ervaring in dus probeer ik daar wat meer mee te doen.
nou wil ik een vierkantje op het scherm tekenen en dat ik met knoppen of de muis kan bepalen waar deze getekend wordt.
later wil ik meerdere vierkantjes die bewegen en dat er iets gebeurd als deze elkaar aanraken.
wat nu niet lukt:
- het vierkantje kan niet overal op het scherm zoals helemaal rechts of onder (boven de knoppen)
- De achtergrond veranderd niet van kleur.
programma:
Main.java
Code:
public class Main
{
public static void main(String[] args)
{
Window window = new Window();
}
}
Window.java
Code:
import javax.swing.JFrame;
import javax.swing.JPanel;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import java.awt.event.MouseEvent;
public class Window extends JFrame implements ActionListener, MouseListener
{
private DrawComponent dc;
private JButton buttonLeft, buttonRight, buttonUp, buttonDown;
public Window()
{
dc = new DrawComponent(150, 100);
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
buttonLeft = new JButton("left");
buttonRight = new JButton("Right");
buttonUp = new JButton("Up");
buttonDown = new JButton("Down");
panel.add(buttonLeft, BorderLayout.WEST);
panel.add(buttonRight, BorderLayout.EAST);
panel.add(buttonUp, BorderLayout.NORTH);
panel.add(buttonDown, BorderLayout.SOUTH);
JFrame frame = new JFrame();
frame.setLayout(new BorderLayout());
frame.setTitle("DrawRect");
frame.setSize(500, 500);
frame.setResizable(false);
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.getContentPane().add(dc, BorderLayout.CENTER);
frame.getContentPane().add(panel, BorderLayout.SOUTH);
frame.setVisible(true);
buttonLeft.addActionListener(this);
buttonRight.addActionListener(this);
buttonUp.addActionListener(this);
buttonDown.addActionListener(this);
dc.addMouseListener(this);
System.out.println("x " + dc.getX() + "\n" +
"y " + dc.getY());
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource() == buttonLeft)
{
dc.setX(dc.getX()-5);
dc.repaint();
System.out.println("x " + dc.getX() + "\n" +
"y " + dc.getY());
}
else if(e.getSource() == buttonRight)
{
dc.setX(dc.getX()+5);
dc.repaint();
System.out.println("x " + dc.getX() + "\n" +
"y " + dc.getY());
}
else if(e.getSource() == buttonUp)
{
dc.setY(dc.getY()-5);
dc.repaint();
System.out.println("x " + dc.getX() + "\n" +
"y " + dc.getY());
}
else if(e.getSource() == buttonDown)
{
dc.setY(dc.getY()+5);
dc.repaint();
System.out.println("x " + dc.getX() + "\n" +
"y " + dc.getY());
}
}
public void mousePressed(MouseEvent e) { }
public void mouseReleased(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }
public void mouseClicked(MouseEvent e)
{
dc.setX(e.getX());
dc.setY(e.getY());
dc.repaint();
System.out.println("x " + dc.getX() + "\n" +
"y " + dc.getY());
}
}
DrawComponent.java
Code:
import java.awt.Color;
import java.awt.Container;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class DrawComponent extends JPanel
{
private int x;
private int y;
public DrawComponent(int x, int y)
{
this.x = x;
this.y = y;
}
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
super.paintComponent(g);
g2.setBackground(Color.red);
g2.setColor(Color.blue);
g2.drawRect(x, y, 10, 10);
}
public void setX(int x)
{
this.x = x;
}
public void setY(int y)
{
this.y = y;
}
public int getX()
{
return x;
}
public int getY()
{
return y;
}
}
kan iemand mij een beetje de goede weg op helpen..
bedankt