Java applets Czyszczenie JPanel

Odpowiedz Nowy wątek
2014-12-20 15:52
Krwawy Orzeł
0

Mam taki problem.
Tworze applets, kilka przycisków, gdzy wciskam jeden z przycisków za pomoca komendy
g.drawString("gdfsg",50,50);
wypisuje mi tekst na "Jpanelu"
teraz wciskam inny przycisk który ma wyczyscic jpanel z obecnego tekstu i wstawic nowy.
Da sie to zrobić za pomocą jednego przycisku??

Pozostało 580 znaków

2014-12-20 15:53
0

Tak.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-20 16:46
Krwawy Orzeł
0

ok skor się da to jak to powinło wyglądać

..... // mamy action listnera

if( zrodlo == b1)
{
     g.drawString("sdfdf",50,50)
}
else if( zrodlo == b2)
{
     panel1.repain();                               // próbowałem w taki spsób ale usuwa tylko i już nie mogę wypisac innego tekstu za pomocą draw...
     g.drawString("sdfdf",50,50)
}
edytowany 1x, ostatnio: bogdans, 2016-12-13 18:26

Pozostało 580 znaków

2014-12-20 17:13
0

Nigdy nie rysuj w Listenerze, rysowanie musi być w funkcji paintComponent. Szkicowo:

public void paintComponent(Graphics g)
{
    super.paintComponent(g);
    g.drawString(txt,50,50);
}
//w listenerze
if(zrodlo == b1)
{
    txt = "a kuku";
}

txt jest polem w klasie


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-20 17:27
Krwawy Orzeł
0
bogdans napisał(a):

Nigdy nie rysuj w Listenerze, rysowanie musi być w funkcji paintComponent. Szkicowo:

public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.drawString(txt,50,50);
}
//w listenerze
if(zrodlo == b1)
{
txt = "a kuku";
}

txt jest polem w klasie

czyli najlepiej w osobnej klasie utworzyc jpanel w któym bede rysowała a w listnerze tylko go wywołać?

Pozostało 580 znaków

2014-12-20 17:42
0

Pewnie tak, w listenerze tylko zmiana parametrów rysunku i na końcu wywołanie repaint dla panelu.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-20 23:23
Krwawy Orzeł
0

Co jest tutja nie tak dlaczego po załczeniu nic mi nie rysuje???

package ol;
 
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
 
import javax.swing.JPanel;
 
public class paint extends JPanel
{
    String txt = " fsdfsd";
 
    public paint()
    {
        setPreferredSize(new Dimension(800,300));
        setLayout(null);
    }
 
    public void paintCompoment(Graphics g)
    {
        super.paintComponent(g);
 
        g.setColor(Color.BLACK);
        g.drawString(txt, 50, 50);
        g.drawRect(50, 50, 70, 70);
    }
}

Pozostało 580 znaków

2014-12-21 00:36
0

Po pierwsze, na panelu służącym tylko do rysowania layout nie ma żadnego znaczenia. Instrukcja

setLayout(null);

jest całkowicie zbędna. Rada na przyszłość, zapomnij, że ta instrukcja istnieje.
Po drugie, przestrzegaj konwencji, nazwy klas powinny zaczynać się dużą literą.
Po trzecie, ten obiekt klasy paint trzeba umieścić w aplecie.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell

Pozostało 580 znaków

2014-12-21 15:24
Krwawy Orzeł
0

Obiekt klasy zamiescić w aplecie:

paint p1 = paint();
 
add(p1);

to ma się znajdować w aplecie??

Pozostało 580 znaków

2014-12-21 15:25
Krwawy Orzeł
0
Krwawy Orzeł napisał(a):

Obiekt klasy zamiescić w aplecie:

 
paint p1 = new paint();

add(p1);


> 
> to ma się znajdować w aplecie??

Pozostało 580 znaków

2014-12-21 16:48
Krwawy Orzeł
0
package ol;
 
import java.applet.Applet;
import java.awt.Color;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
 
import javax.swing.JButton;
import javax.swing.JPanel;
 
public class Aplet extends Applet implements ActionListener
{
    JPanel przycisi, galeria;
    JButton b[] = new JButton[6];
 
    String txt ;
    public void init()
    {
 
        setSize(800,620);
        setBackground(Color.GRAY);
 
        przycisi = new JPanel();
        przycisi.setPreferredSize(new Dimension(800,60));
        przycisi.setLayout(new GridLayout(1, 6));
 
            for(int i = 0; i < 6; i++)
            {
                b[i] = new JButton("" + i);
                b[i].addActionListener(this);
                przycisi.add(b[i]);
            }
 
        galeria = new JPanel();
        galeria.setPreferredSize(new Dimension(800,240));
 
        paint opisy = new paint();
 
        add(przycisi);
        add(opisy);
        add(galeria);
    }
 
    @Override
    public void actionPerformed(ActionEvent e) 
    {
        Object pobierz = new Object();
 
        pobierz = e.getSource();
 
            if(pobierz == b[0])
            {
                 txt="piesfgfdhbfgvhgfhfgek";
 
            }
            else if(pobierz == b[1])
            {
 
            }
            else if(pobierz == b[2])
            {
 
            }
            else if(pobierz == b[3])
            {
 
            }
            else if(pobierz == b[4])
            {
 
            }
            else if(pobierz == b[5])
            {
 
            }
 
    }
}

Kod klasy głównej

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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