Anonymní profil Janulka – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil Janulka – Programujte.comAnonymní profil Janulka – Programujte.com

 

Příspěvky odeslané z IP adresy 85.135.88.–

Janulka
Java › Swing - bitmapovy editor
25. 11. 2014   #196433

 ~~Zdravím, dělám bitmapový editor v Javě pomocí Swingu. Mám 2 tlačítka jedno mi vykresluje jinde kruh a druhé taky jinde kruh. Ovšem to původní mi vždycky zmizí. Používám repaint() ale asi špatně. Prosím o radu. Jako druhé tlačítko mám provizorně použito tlačítko čtverec

package bitmapovy_editor;

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Polygon;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import javax.swing.*;

/**
 *
 * @author legerska
 */
public class Kruh extends JComponent{
   
    Bitmapovy_editor be = new Bitmapovy_editor();
    boolean kreslit;
    int i;
    int j;
    int k;
    int l;
    
    public Kruh() {
        kreslit = false;
    }
    
    public void VykresliKruh(int i,int j,int k,int l) {
        this.i=i;
        this.j=j;
        this.k=k;
        this.l=l;
         
        kreslit = true;
        //repaint();
    } 
    
    

    public void paintComponent(Graphics g) {
        if (kreslit) {
            g.setColor(Color.RED);
            g.drawOval(i,j,k,l);
            repaint();
        }
    }
}
package bitmapovy_editor;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

/**
 *
 * @author legerska
 */
public class Frame extends JFrame{
    private Kruh kruh;
   
    
    private JPanel panel_tlacitka;
    private JPanel panel_kresleni;
    
    private JButton button_kolecko;
    private JButton button_ctverecek;
    private JButton button_usecka;
    private JButton button_bezierova;
    
    
    public Frame()
    {
        super("Malovani do predmetu GALPR");
     
        
        panel_tlacitka = new JPanel();
        panel_tlacitka.setBackground(Color.GRAY);
       
        this.getContentPane().add(panel_tlacitka, BorderLayout.NORTH);//určí pozici kde bude panel s tlačítky
        
        button_kolecko = new JButton("Kolečko");
        button_ctverecek = new JButton("Čtvereček");
        button_usecka = new JButton("Usečka");
        button_bezierova = new JButton("Bezierova krivka");
        
        panel_tlacitka.add(button_kolecko);
        button_kolecko.addActionListener(new Kresba()); // akce tlacitka
       
        panel_tlacitka.add(button_ctverecek);
        button_ctverecek.addActionListener(new Kresba2()); // akce tlacitka
        
        panel_tlacitka.add(button_usecka);
        panel_tlacitka.add(button_bezierova);
        
        panel_kresleni = new JPanel();
        panel_kresleni.setBackground(Color.YELLOW);
        panel_kresleni.setLayout(new BorderLayout());
 
        this.getContentPane().add(panel_kresleni, BorderLayout.CENTER);
        
        kruh = new Kruh();
        panel_kresleni.add(kruh);
        
        
        
    }
    
    class Kresba implements ActionListener {
        public void actionPerformed(ActionEvent e) {
          kruh.VykresliKruh(100,100,100,100);
          Prekresli();
          
        }
    }

    public void Prekresli()
    {
       repaint();
    }
    
    class Kresba2 implements ActionListener {
        public void actionPerformed(ActionEvent e) {
          kruh.VykresliKruh(200,200,100,100);
          Prekresli();
        }
    }
    
}

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý