problem z Buttonem

0

Witam. Próbuję napisać program do identyfikacji roślin (tzw klucz botaniczny)
i mam problem nad interfejsem graficznym. Mianowicie program nie zadaje drugiego pytania o cechę rośliny tylko od razu przechodzi do kolejnej odpowiedzi(prawidłowo ma zadać pytanie na które pada odpowiedz tak lub nie a potem przechodzi do kolejnego pytania, itd.). Domyślam się gdzie jest problem(zaznaczyłem w kodzie) ale nie wiem jaką komendę wstawić aby program działał poprawnie.Jako początkujący użytkownik javy będę wdzięczny za każdą podpowiedz

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.EventObject;

import javax.swing.*;

public class PrzyciskiITekst implements ActionListener{
     JFrame ramka;
     JButton takButton;
     JButton nieButton;
     JTextField textF;
     JLabel rezultatJL;
    
     public static void main(String[] args) {
          PrzyciskiITekst przyciski = new PrzyciskiITekst();
          przyciski.zbudujGUI();
     }
     public void zbudujGUI() {
            
         ramka = new JFrame();
             
         ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
             
         ramka.setSize(400, 200);         
             
         takButton = new JButton();
             
         takButton.setText("tak");
         nieButton = new JButton("nie");    
             
         takButton.addActionListener(this);
             
         nieButton.addActionListener(this);         
             
         JPanel jp = new JPanel();
             
         jp.setLayout(new GridLayout(1,2));
             
         jp.add(takButton);
             
         jp.add(nieButton);    
             
             
         JPanel jp2 = new JPanel();
             
         jp2.setLayout(new GridLayout(3,1));
             
             
         textF = new JTextField("Czy liść o blaszcce równowąskiej?");
             
         // tworzymy pole na którym będzie wypisany tekst
             
         rezultatJL = new JLabel();
             
         rezultatJL.setSize(400,20);
             
         jp2.add(textF);
             
         jp2.add(rezultatJL);
             
         jp2.add(jp);        
             
             
             
         ramka.add(jp2);
             
         ramka.setVisible(true);
         }
     @SuppressWarnings("null")
    public void actionPerformed(ActionEvent akcja ) {

         if (akcja.getSource() == takButton){
              rezultatJL.setText(" Czy kłosy palczasto usttawione na szczycie źdźbła?");
            if (akcja.getSource() == takButton);//wiem że problem jest w tej linijce ale jak zmienić kod aby program nadal korzystał z tego samego buttona co 2 lininijki wyżej?
             rezultatJL.setText("  włośnica");
              }
             
         else if (akcja.getSource() == nieButton){
              rezultatJL.setText(" palusznik ");
              }
        
         
    }
}
0

Nie wystarczy tak?

         if (akcja.getSource() == takButton){
              rezultatJL.setText(" Czy kłosy palczasto usttawione na szczycie źdźbła?");
              rezultatJL.setText("  włośnica");
         }

Ten kod jest absurdalny ale nie wiem co chcesz uzyskać.

0

Hmm dałem chyba za krótki kod aby było jasne o co mi chodzi.Chcę aby po pytaniu rezultatJL.setText(" Czy kłosy palczasto usttawione na szczycie źdźbła?"); trzeba było znów wybrać odpowiedz tak lub nie (przy pomocy tych samych przycisków co wcześniej) i dopiero wtedy padłaby odpowiedz.Może jak spojrzysz na program poniżej to zrozumiesz co chcę osiągnąć (chcę żeby nowa wersja działała w trybie graficznym nie jak poniższa tekstowym)

import java.util.Scanner;


public class kluczbotaniczny {

	public static void main(String[] args) {
		// tworze ramke
       
        
		Scanner skaner = new Scanner(System.in);
		
		System.out.print("Czy liść o blaszcce równowąskiej ");
		String odp = skaner.nextLine();		
		
		if (odp.equalsIgnoreCase("tak")){
			
		System.out.println("Czy kłosy palczasto usttawione na szczycie źdźbła?");
			String odp2 = skaner.nextLine();
			if (odp2.equalsIgnoreCase("tak")){
				System.out.println("Palusznik");}
			else {
				if (odp2.equalsIgnoreCase("nie")) {
				System.out.println("Czy kłoski otoczone długimi szczecinami ościstymi zebranymi w wiechę kłosokształtną?");
				String odp3 = skaner.nextLine();
				if (odp3.equalsIgnoreCase("tak")){
					System.out.println("Włościca");
				}
				else {
					if (odp3.equalsIgnoreCase("nie")) {
						System.out.println("Czy kłoski na gałązkach wiechy gęsto skpione , zbliżone do siebie,spłaszczone od strony grzbietowej,ustawione jednostronie?");
						String odp4 = skaner.nextLine();
						if (odp4.equalsIgnoreCase("tak")){
							System.out.println("Chwastnica");
						}
						else {
							if (odp4.equalsIgnoreCase("nie"));{
								System.out.println("Czy kłoski na gałązkach wiechy nie skupine,wiecha jednostrona, upodstawy z 4-5gałązkami,plewka dolna z wyrażnym kantem na grzbiecie?");
								String odp5 = skaner.nextLine();
								if (odp5.equalsIgnoreCase("tak")){
									System.out.println("Wiechlina");
								}
								else {
									if (odp2.equalsIgnoreCase("nie")) {
										System.out.println("brakcdanych");
									}
									}
							}
						}

					}
					}
			}
			}
		}
		else {
			if (odp.equalsIgnoreCase("nie")) ;{
				System.out.println("Czy liście naprzeciwległe ,tj,parzysto ustawione na łodzydze?");
				String odp6 = skaner.nextLine();
				if (odp6.equalsIgnoreCase("tak")){
					System.out.println("Wrzos");
				}
				else {
					if (odp6.equalsIgnoreCase("nie")) {
						System.out.println("Czy roslina z włsokami parzącymi?okwiat pojedyńczy ,4-krotny? Kwiat zebrany w krótkie,gęste kwiatostany umieszczone w kątach liści?");
						String odp7 = skaner.nextLine();
						if (odp7.equalsIgnoreCase("tak")){
							System.out.println("Pokrzywa");
						}
						
						
					}
					}

			}
			
	}
	}
}
0

Zdefiniuj pole w klasie

int pytanie = 0;

a potem

if (akcja.getSource() == takButton)
{
     pytanie++;
     switch(pytanie)
     {
          case 1:
             ...
          case 2:
             ...
     }
}

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