Zmiana koloru tła za pomocą TextField Aplet.

0

witam mam taki problem chciałbym aby Aplet zmienił mi kolor na (np czerwony jezeli w miejsce textowe wpiszę : czerwony ) zrobiłem takie coś :

package javaapplication3;

import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;


public class oko extends Applet implements ItemListener,ActionListener  {

   Label l1;
   Panel p1;
   TextField pt;
   @Override
   public void init() {

       l1 = new Label("Napisz kolor ");

       pt=new TextField(12);

       p1= new Panel();

       p1.add(l1);  
       p1.add(pt);

       add(p1); 

        }

    @Override
    public void itemStateChanged(ItemEvent e) {

}

    @Override
    public void actionPerformed(ActionEvent e) {

    }
    }

chciałbym użyć IF(...) { setBackground(Color.red) } tylko nie wiem co w tym ifie wstawić doładnie .proszę o pomoc

0

Skorzystaj raczej z KeyListenera. W którym momencie ma się zmienić kolor tła, po napisaniu "czerwony", po napisaniu "czerwony ", po napisaniu "czerwony" i naciśnięciu Enter?

0

znaczy zapomniałem dopisać że kolor na czerwony ma się zmienić po wpisaniu w pole " czerwony " i nacisnieciu przycisku "zmien" . Czyli zapomniałem dopisać w kodzie Buttona .

package javaapplication3;

import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;


public class oko extends Applet implements ItemListener,ActionListener  {

   Label l1;
   Panel p1;
   TextField pt;
   Button b1;
   @Override
   public void init() {

       b1 = new Button("zmien");

       l1 = new Label("Napisz kolor ");

       pt=new TextField(12);

       p1= new Panel();

       p1.add(l1);  
       p1.add(pt);
       p1.add(b1);

       add(p1); 

        }

    @Override
    public void itemStateChanged(ItemEvent e) {

}

    @Override
    public void actionPerformed(ActionEvent e) {

    }
    }
0

no ale dalej nie wiem co tu zrobić

0
public void actionPerformed(ActionEvent e) {
    String kolor = pt.getText();
    if(kolor.equals(" czerwony "))
    {
        pt.setBackground(Color.RED);
        return;
    }
}
0

ale po wpisaniu tego mi nie zmienia koloru :/

0

nie powinno być tam coś z tym buttonem ?

0

Myślałem, że to wiesz.

b1.addActionListener(this);
0

nie ma to wygladac jakos w ten sposób:

package javaapplication3;

import java.applet.Applet;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;


public class oko extends Applet implements ItemListener,ActionListener  {

   Label l1;
   Panel p1;
   TextField pt;
   Button b1;
   @Override
   public void init() {

       b1 = new Button("zmien");

       l1 = new Label("Napisz kolor ");

       pt=new TextField(12);

       p1= new Panel();
       b1.addActionListener(this);
       p1.add(l1);  
       p1.add(pt);
       p1.add(b1);

       add(p1); 
        }
    
    @Override
    public void itemStateChanged(ItemEvent e) {

}

    @Override
    public void actionPerformed(ActionEvent e) {
    Object o = e.getSource();
    String kolor = pt.getText();
    if(kolor.equals("czerwony") & (o==pt))
    {
        pt.setBackground(Color.red);
        repaint();
    }
        
    }
    }

bo ten kod który mi wyslales nie zmienia koloru

0

Przecież napisałeś

kolor na czerwony ma się zmienić po wpisaniu w pole " czerwony "

Słowo czerwony jest otoczone spacjami. Jeśli spacje napisałeś przez pomyłkę, to zmień sprawdzanie na

if(pt.getText().equals("czerwony"))
//ewentualnie na
if(pt.getText().equalsIgnoreCase()("czerwony"))

(repaint() nie zaszkodzi)

0

no tak działa :) tylko że zmienia mi kolor tła w panelu a nie całego apletu :/

0

Zamień

pt.setBackground(Color.RED);
//na
setBackground(Color.RED);

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