Multifunkční posluchač tlačítek – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Multifunkční posluchač tlačítek – Java – Fórum – Programujte.comMultifunkční posluchač tlačítek – Java – Fórum – Programujte.com

 

Leeesy
~ Anonymní uživatel
6 příspěvků
21. 1. 2013   #1
-
0
-

Zdar, mám jednoduchý dotaz. Mám více JButtnů v JFrame a chtěl bych jim přiřadit jeden multifunkční posluchač, abych nemusel dokola psát přiložený kód, ale každé tlačítko má jinou funkci. Díky za odpověď:).

plusJedna.addActionListener(new ActionListener() {
   public void actionPerformed(ActionEvent e) {
   //Co chci vykonat
   }
  });
Nahlásit jako SPAM
IP: 194.12.32.–
pedro.cze0
Newbie
21. 1. 2013   #2
-
0
-

slo by?

JButton butt = (JButton)e.getSource(); //Tim ziskas zdroj, ktery zavolal metodu

Nahlásit jako SPAM
IP: 2001:718:1e02:8144::beef:...–
Leeesy
~ Anonymní uživatel
6 příspěvků
21. 1. 2013   #3
-
0
-

Potřebuji něco takového, nevím, jestli to funguje.

package kalkulačka;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class kalkulacka implements ActionListener {
	
public static void main(String[] args){
	JFrame frame=new JFrame();
	JButton but1=new JButton();
	JButton but2=new JButton();
	JButton but3=new JButton();
	JButton but4=new JButton();
	JPanel panel=new JPanel();
	panel.add(but1);panel.add(but2);panel.add(but3);panel.add(but4);
	frame.add(panel);
	frame.pack();
	frame.setVisible(true);
}

	@Override
	public void actionPerformed(ActionEvent e) {
		JButton butt = (JButton)e.getSource();
		 switch (butt) {
         case 1:  butt = "plus"{
        		 System.out.println("plus");
        		 break; 
         }
                
         case 2:  butt = "minus"{
        		 System.out.println("minus");
        		 break;
         }
                
         case 3:  butt = "krat"{
        		 System.out.println("krat");
        		 break;
         }
                  
         case 4:  butt = "deleno"{
        		 System.out.println("deleno");
        		 break;
      }
     } 
	}

}
Nahlásit jako SPAM
IP: 194.12.32.–
Leeesy
~ Anonymní uživatel
6 příspěvků
21. 1. 2013   #4
-
0
-

Pardon, je tam chyba v syntaxi;).

Nahlásit jako SPAM
IP: 194.12.32.–
pedro.cze0
Newbie
21. 1. 2013   #5
-
0
-

#3 Leeesy

 Každej button pojmenuj po operaci, kterou má vykonávat a zkus něco jako:

public void actionPerformed(ActionEvent e) {
	JButton butt = (JButton)e.getSource();
	String operace = butt.getText();
		
	switch(operace){
		case "plus":
		   	System.out.println("soucet");
			break;
		case "minus":
                	System.out.println("rozdil");
                    	break;
		case "deleno":
		    	System.out.println("podil");
                   	break;
		default : System.out.println("soucin");
	}
		 
}
Nahlásit jako SPAM
IP: 146.102.126.–
Leeesy
~ Anonymní uživatel
6 příspěvků
21. 1. 2013   #6
-
0
-

Půjdu googlit, nefunguje to;).

package kalkulačka;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class kalkulacka implements ActionListener {
	
	JFrame frame=new JFrame();
	JPanel panel=new JPanel();
	
	JButton soucet=new JButton("soucet");
	JButton rozdil=new JButton("rozdil");
	JButton podil=new JButton("podil");
	JButton soucin=new JButton("soucin");
	
	public kalkulacka(){
		soucet.addActionListener(this);
		rozdil.addActionListener(this);
		podil.addActionListener(this);
		soucin.addActionListener(this);
	
		panel.add(soucet);panel.add(rozdil);panel.add(podil);panel.add(soucin);
		frame.add(panel);
		frame.pack();
		frame.setVisible(true);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		
		JButton butt = (JButton)e.getSource();
		String operace = butt.getName();
			
		switch(operace){
			case "soucet":
				System.out.println("soucet");
				break;
				
			case "rozdil":
				System.out.println("rozdil");
				break;        	
			case "podil":
				System.out.println("podil");	
				break;
			default : System.out.println("soucin");
		}	 
	}
}
Nahlásit jako SPAM
IP: 194.12.32.–
Leeesy
~ Anonymní uživatel
6 příspěvků
21. 1. 2013   #7
-
+1
-
Zajímavé

Už jsem to vyřešil na jeden řádek, stačilo použít toto: 

String operace = e.getActionCommand();
Nahlásit jako SPAM
IP: 194.12.32.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 6 hostů

Podobná vlákna

Skrytí tlačítek — založil infomf

C# Skupiny tlacitek — založil Fooly

Udalosti od tlačítek — založil tuliss

Grid - roztazeni tlacitek — založil polerok

Winapi textury tlačítek — založil ProXicT

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý