Jak uruchomić grafikę ?

0

Czesć mam maly problem bo nie wiem jak uruchomic w prostym programie grafike.
Mam cos takiego i to nie chce dzialac.
Co zrobić??

import java.awt.;
import java.awt.event.
;

public class kolor implements ActionListener
{
public kolor()
{
Frame f = new Frame();
f.setSize(new Dimension(700, 600));
f.setTitle("GRA WISIELEC");
f.setBackground(Color.blue);
MyListener lst = new MyListener();
f.addWindowListener(lst);
f.setVisible(true);
}

public void paint(Graphics g)
{
g.setColor(Color.orange);
g.fillOval(350, 150, 50, 50);
g.fillRect(367,200,15,15);
g.fillRoundRect(350,210, 50, 100, 5, 5);
g.fillRect(350,310,15,50);
g.fillRect(385,310,15,50);
g.fillRect(300,210,50,15);
g.fillRect(400,210,50,15);

  }

public void actionPerformed(ActionEvent arg0)
{
// TODO Auto-generated method stub
}
public static void main(String args[])
{
kolor k = new kolor();
}
}
class MyWindowAdapter extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}

0
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class kolor extends JFrame implements ActionListener
{
        public kolor()
        {
                super();
                setSize(new Dimension(700, 600));
                setTitle("GRA WISIELEC");
                setBackground(Color.blue);
                MyListener lst = new MyListener();
                addWindowListener(lst);
                setVisible(true);        
        }
       
        public void paint(Graphics g)
                {
                        super.paint(g);
                        g.setColor(Color.orange);
                        g.fillOval(350, 150, 50, 50);            
                        g.fillRect(367,200,15,15);
                        g.fillRoundRect(350,210, 50, 100, 5, 5);
                        g.fillRect(350,310,15,50);
                        g.fillRect(385,310,15,50);
                        g.fillRect(300,210,50,15);
                        g.fillRect(400,210,50,15);
                       
                }
        public void actionPerformed(ActionEvent arg0)
        {
                // TODO Auto-generated method stub
        }        
        public static void main(String args[])
        {
                kolor k = new kolor();
        }
}
class MyWindowAdapter extends WindowAdapter
{
        public void windowClosing(WindowEvent e)
        {
                System.exit(0);
        }
}

Aby metoda paint była wykonywana musi być zapisana w obiekcie, który jest elementem interfejsu, np Canvas, Panel, Frame itp. Jeśli nie jest trzeba w metodzie paint obiektu będącego elementem interfejsu jawnie wywołać metodę paint twojego obiektu.

0

Dodaj tylko te pare linijek to Konstruktora a wszystko zadziala :) pozdrawiam

import java.awt.;
import java.awt.event.
;

public class kolor implements ActionListener
{
public kolor()
{
Frame f = new Frame();
f.setSize(new Dimension(700, 600));
f.setTitle("GRA WISIELEC");
f.setBackground(Color.blue);
MyListener lst = new MyListener();
f.addWindowListener(lst);
f.setVisible(true);

            try {
	         Thread.sleep(100);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

                paint(f.getGraphics());   
    }
    
    public void paint(Graphics g)
            {
                    g.setColor(Color.orange);
                    g.fillOval(350, 150, 50, 50);             
                    g.fillRect(367,200,15,15);
                    g.fillRoundRect(350,210, 50, 100, 5, 5);
                    g.fillRect(350,310,15,50);
                    g.fillRect(385,310,15,50);
                    g.fillRect(300,210,50,15);
                    g.fillRect(400,210,50,15);                                                
                    
            }
    public void actionPerformed(ActionEvent arg0)
    {
            // TODO Auto-generated method stub
    }        
    public static void main(String args[])
    {
            kolor k = new kolor();
    }

}
class MyWindowAdapter extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}

0

Fori muszę Cię zmartwić, nie zadziała bo nie ma prawa ;).

0

Luuki chociasz sprawdz !
u mnie sie wyswietla ta cała grafika na JFrame !

0

Sprawdzałem i nie działa, a jeśli działa u Ciebie to może wytłumaszysz jak to się dzieje, że działa. Po analizie kodu jasno widać, że rysunek wyświetli się tylko na początku uruchomienia aplikacji, a po odświeżeniu okna nic nie będzie widać. Może kod, który jest na stronie jest inny od tego co masz u siebie?

0

aaaaaaa myślałem że ma się wyswitlić tylko za pierwszym razem :)
to zwracam honor

0

BTW Głównej metody rysującej paint(Graphics g) nie należy wywoływać w jawny sposób.

0

wiem, że tej motody nie nalezy wykonywać jawnie ponieważ jest ona wywoływana podczas jakiegokolwiek zdarzenia na okienku, ale w tym przypadku to ta metoda nie jest nadpisywana z żadnej wczesniejszej kasy więc pełniła tutaj tylko mało ważną fukcję robienia czegoś na obiekcie graphics okna JFrame ;)
pozdrawiam

0
fori napisał(a)

wiem, że tej motody nie nalezy wykonywać

Skoro wiesz to nie podpowiadaj źle, tym bardziej, że odpowiedź już była podana.

fori napisał(a)

ale w tym przypadku to ta metoda nie jest nadpisywana z żadnej wczesniejszej kasy więc pełniła tutaj tylko mało ważną fukcję robienia czegoś na obiekcie graphics

Nie wiem czy zwróciłeś uwagę na temat postu. Kolega d-dragon po prostu nie wiedział jak zrealizować rysowanie i dlatego jego metoda nigdzie nie była podłączona.

0

...dobra :-) następnym razem niebędzie zle

1 użytkowników online, w tym zalogowanych: 0, gości: 1