porownywanie stringow i zmiana tekstu w polu

0

mam taki problemik:
jest pole tekstowe nieedytowalne ktore inicjuje na "nie"
pozniej chce sprawdzic co w tym polu jest wpisane i zmienic jego zawartosc w taki sposob:
BYLO nie MA BYC tak
BYLO tak MA BYC nie
zmiana ma byc wywolana przyciskiem
robie to tak

czyAlertUstawiony=new JTextField(5);
    czyAlertUstawiony.setEditable(false);
    czyAlertUstawiony.setText("nie");
    ustawAlert=new JButton("Ustaw alert");
    ustawAlert.setBackground(Color.red);
    ustawAlert.setMnemonic('A');
    ustawAlert.setToolTipText("Ustawia alert w danym dniu");
    ustawAlert.addActionListener(new ActionListener()
    {
      public void actionPerformed(ActionEvent a)
      {
        if(czyAlertUstawiony.getText()=="nie"){czyAlertUstawiony.setText("tak");
                                                        }
      else{czyAlertUstawiony.setText("nie");
      }                              
      }
    });//koniec anonimowej klasy wewnetrznej

i sie uruchamia ale tekst sie nie zmienia...

0

Ja zawsze używałem xorowania. Najpierw tworzyłem dwuelementową tablicę np {"tak", "nie" }. Potem xorowałem zmienną typu int i tekst pobierałem za pomocą kodu:

int i = 0;

i = i^1;

poletekstowe = tablica[i];

Mniej więcej tak to wygląda.

0

Do porownywania strongow uzywaj equals a nie ==

0

dzieki z equals dziala dobrze;)

to jeszcze zapytam o cos takiego
w klasie glownej zadeklarowalem sobie 2 pomocnicze klasy, zeby pewnymi danymi operowac na listach

private class Dane
  {
   private int dzien, mc,rok;
   private int h,alert;
   private String opis;	
  };
  
  private class OpakDane
  {
	private Dane dane;
	private OpakDane nast;
  };
  

oczywiscie dodalem sobie pozniej zmienne typu Dane:

Dane dane;

ale jak chce wstawic cos w te pola to zglaszany jest wyjatek null pointer exeption

tDzien.addActionListener( new ActionListener() 
	 { public void actionPerformed(ActionEvent e)           
         { try
           {
           dane.dzien= Integer.parseInt(e.getActionCommand() );
           }
          catch (NumberFormatException e1)  
         { JOptionPane.showMessageDialog(null, 
              "Zły format dnia " , "Niepoprawne dane",
              JOptionPane.WARNING_MESSAGE);
              tDzien.setText("");   
         }    
         catch (NullPointerException e1)  
         { JOptionPane.showMessageDialog(null, 
              "Podaj dzień", "Brak danych",
              JOptionPane.WARNING_MESSAGE); 
         }

gdzie tDzien to Textfield... dlaczego?

0

Dane dane;
to nie jest utworzenie nowej zmiennej tylo raczej utworzenie referencji ktora moze pokazywc na obiekt typu Dane. Referencje deklarowane w klasach sa inicjalizowane na null, dlatego masz ten wyjatek. Powinienes zrobic tak:
Dane dane = new Dane();

teraz powinno smigac (przynajmniej ten fragment bo jak sam piszesz liste to zawsze jest jeszcze jeden blad ;)).
Pozdro.

0

no przeciez! podstawowy blad az wstyd sie przyznawac:)
dziala:)
a lista na razie dziala... znaczy tak mi sie wydaje bo dodawanie nie zglasza problemow... jeszcze musze sprawdzic jak z wyszkuwaniem i wypisywaniem:)

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