Zum Inhalt springen

Bernd123

Mitglieder
  • Gesamte Inhalte

    3
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Bernd123

  1. bin da leider ein ziemlicher Anfänger. andere Frage wäre warum bei mir im Quelltext durch list.size() soviele Rechtecke mit nur einem Klick auftauchen? Bernd
  2. Hi, danke, vielleicht probiere ich den Algorithmus aus. aber wie kann ich die Mausposition links unten und rechts oben für bestehende Rechtecke überprüfen zum neuen Rechteck? Gruß, Bernd
  3. Hallo, ich wollte durch Mausklick Rechtecke zeichnen, die sich nicht überdecken sollen.(ein Rechteck soll nicht in einem anderen erscheinen) Das mit dem nicht überdecken geht nicht. Wenn ich es versuche, kommt durch list.size() ganz viele Rechtecke auf einmal in diesem Bereich (Auszug): Kann mir da jemand helfen? Bernd public void mouseClicked(MouseEvent me) { //linke Maustaste? if(me.getButton()==1){ //ist die Liste leer? if(list.size()==0) { z=me.getX(); z2=me.getY(); x1 = -50 + (int) (Math.random() * (width + 40)); y1 = (int) (Math.random() * (height + 20)); Rechteck robj=new Rechteck( z, z2, x1, y1); addRechteck((Rechteck) robj); } //else { // if(list.size()<10) z=me.getX(); z2=me.getY(); // mouseEntered(me,z,z2); x1 = -50 + (int) (Math.random() * (width + 40)); y1 = (int) (Math.random() * (height + 20)); Rechteck robj=new Rechteck( z, z2, x1, y1); //Rechteckobjekt mit 4 Parametern erzeugen //for(int i=0; i<list.size(); i++){ for(int i=0; i<list.size(); i++){ if(!(list.get(i).contains(robj))&&i<10){ //neues robj enthält keines vorhandenen Listen Rechtecke? mouseEntered(me, robj); //Rechteck robj=new Rechteck( z, z2, x1, y1); // if(i==list.size()-1){ //falls oben ja, dann bei Listenende nur ein Rechteck hinzufügen //addRechteck((Rechteck) robj);//nur ein neues Rechteck hinzufügen } } //0} //} //} //} //} repaint(); //neuzeichnen } /* public void mouseEntered(MouseEvent me, Rechteck robj) { // Rechteck robj=new Rechteck( z, z2, x1, y1); addRechteck((Rechteck) robj); //addRechteck(z,z2); }*/ } private void mouseEntered(MouseEvent me, Rechteck robj) { if(me.getID()!=MouseEvent.MOUSE_ENTERED){ addRechteck((Rechteck) robj); } } import java.awt.Image; import java.awt.Toolkit; import javax.swing.JFrame; public class main_class { public static Image image; public static void main(String[] args) { JFrame window = new JFrame("Rechtecke"); window.setSize(600, 600); window.setLocationRelativeTo(null); window.getContentPane().add(new Rechteck_Panel(window)); window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //Icon in der oberen linken Ecke der Frame verändern window.setIconImage(image); window.setVisible(true); } } import java.awt.Color; import java.awt.FlowLayout; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Point; import java.awt.Rectangle; import java.awt.event.InputEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.event.MouseMotionAdapter; import java.util.ArrayList; import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; @SuppressWarnings("serial") public class Rechteck_Panel extends JPanel { private Graphics2D g2; //2D Graphikobjekt //private Point mausposition; //Mausposition private ArrayList<Rechteck> list; //Liste für Rechtecke private int x1; private int y1; private int z; private int z2; private int width; private int height; private JDialog myDialog; //Konstruktor public Rechteck_Panel(JFrame window) { super(); myDialog = new JDialog(window, "Fehler", true); myDialog.setBounds(new Rectangle(window.getLocation().x,window.getLocation().y,200,60)); myDialog.add(new JLabel("Maus nicht im Fenster")); myDialog.setLayout(new FlowLayout(FlowLayout.CENTER)); setBackground(Color.LIGHT_GRAY); list = new ArrayList<Rechteck>(); //MouseListeners addMouseListener(new MyMouseListener()); setFocusable(true); requestFocus(); } protected void paintComponent(Graphics g) { g2 = (Graphics2D) g; super.paintComponent(g); //String zeichnen g.drawString("r=rot, b=blau, w=weiss, a=Alle schwarz", 10, getHeight()-10); //versuche Rechtecke zu zeichnen try { for(int i=0; i<list.size(); i++) { g2.draw(list.get(i)); g2.setColor(Color.BLACK); } } catch(java.lang.NullPointerException e) { System.out.println("fehler"); } } //Rechteck hinzufügen private void addRechteck(Rechteck robj) {//Übergabe der Mausposition in z und z2 try {//mausposition ist ein Obj width = getSize().width; // Get width height = getSize().height; // and height //Rechteck robj=new Rechteck(30, 30, x1, y1); //Rechteck robj2=new Rechteck(20, 90, x1, y1); //for (int i=0; i<list.size(); i++){ //if(list.get(i).contains(robj.x, robj.y)==false) { //} /* if(list.size()==0){ list.add(new Rechteck(robj.x, robj.y, (int)((robj.width) * Math.random()), (int)((getSize().height) * Math.random()))); }*/ // for(int i=0; i<=list.size(); i++){ // if(!list.get(i).contains(robj)){ list.add(new Rechteck(robj.x, robj.y, (int)((robj.width) * Math.random()), (int)((getSize().height) * Math.random()))); //Rechteck der Rechteckliste hinzufügen // } //} /*list.add(new Rechteck(mausposition.x, mausposition.y, (int)((getSize().width-mausposition.x) * Math.random()), (int)((getSize().height-mausposition.y) * Math.random()))); */ } catch(java.lang.NullPointerException e) { System.out.println("fehler"); } } //MouseListener Klasse class MyMouseListener extends MouseAdapter { public MyMouseListener() { } //wurde Maustaste geclickt public void mouseClicked(MouseEvent me) { //linke Maustaste? if(me.getButton()==1){ //ist die Liste leer? if(list.size()==0) { z=me.getX(); z2=me.getY(); x1 = -50 + (int) (Math.random() * (width + 40)); y1 = (int) (Math.random() * (height + 20)); Rechteck robj=new Rechteck( z, z2, x1, y1); addRechteck((Rechteck) robj); } //else { // if(list.size()<10) z=me.getX(); z2=me.getY(); // mouseEntered(me,z,z2); x1 = -50 + (int) (Math.random() * (width + 40)); y1 = (int) (Math.random() * (height + 20)); Rechteck robj=new Rechteck( z, z2, x1, y1); //Rechteckobjekt mit 4 Parametern erzeugen //for(int i=0; i<list.size(); i++){ for(int i=0; i<list.size(); i++){ if(!(list.get(i).contains(robj))&&i<10){ //neues robj enthält keines vorhandenen Listen Rechtecke? mouseEntered(me, robj); //Rechteck robj=new Rechteck( z, z2, x1, y1); // if(i==list.size()-1){ //falls oben ja, dann bei Listenende nur ein Rechteck hinzufügen //addRechteck((Rechteck) robj);//nur ein neues Rechteck hinzufügen } } //0} //} //} //} //} repaint(); //neuzeichnen } /* public void mouseEntered(MouseEvent me, Rechteck robj) { // Rechteck robj=new Rechteck( z, z2, x1, y1); addRechteck((Rechteck) robj); //addRechteck(z,z2); }*/ } private void mouseEntered(MouseEvent me, Rechteck robj) { if(me.getID()!=MouseEvent.MOUSE_ENTERED){ addRechteck((Rechteck) robj); } } } } import java.awt.Color; import java.awt.Rectangle; @SuppressWarnings("serial") public class Rechteck extends Rectangle { private Color farbe; private int dx, dy; //Abstände der Maus private boolean imRechteck; //beim Verschieben public Rechteck(int x, int y, int width, int height) { super(x, y, width, height); this.farbe = Color.BLACK; //this.imRechteck=false; } /* public boolean isImRechteck() { return imRechteck; } public void setImRechteck(boolean imRechteck) { this.imRechteck = imRechteck; } */ public Color getFarbe() { return farbe; } public void setFarbe(Color farbe) { this.farbe = farbe; } /* public int getDx() { return dx; } public void setDx(int dx) { this.dx = dx; } public int getDy() { return dy; } public void setDy(int dy) { this.dy = dy; } */ } ProginsNetz.zip

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...