Problem v JAVE

Programovacie jazyky, rady, poradňa...
dante18
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 82
Registrovaný: 30 jún 2006, 21:29
Kontaktovať používateľa:

Problem v JAVE

Príspevok od používateľa dante18 »

Zdravim. mam nasledovny problem: mam vytvorene okno a v nom tlacidlo (nova uloha), ked stlacim tlacidlo otvori sa nove okno kde je formular a dalsie tlacidlo(uloz). ked stlacim toto tlacidlo tak sa spravia nejake akcie a okno sa zavrie a zostane len to povodne okno. problem je v tom ze ked to iste spravim druhy krat tak tie akcie sa vykonaju dva krat, ked treti krat tak tri krat atd. nie je tam ziadny cyklus ani podmienka, takze netusim co s tym je :cry: . budem vdacny za ake kolvek rady
xivo
Light Professional
Light Professional
Používateľov profilový obrázok
Príspevky: 752
Registrovaný: 27 jún 2005, 22:49
Bydlisko: Slovensko
Kontaktovať používateľa:

Príspevok od používateľa xivo »

Bez zdrojaku mozeme len hadat ... tak ho tu skus pastnut ;)
dante18
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 82
Registrovaný: 30 jún 2006, 21:29
Kontaktovať používateľa:

Príspevok od používateľa dante18 »

ok tak tu je ten kod , to podstatne z neho:

Kód: Vybrať všetko

public class GUI extends JFrame{
	JButton nova_uloha = new JButton("Nova úloha");
JToolBar nastroje = new JToolBar();
public GUI(){
		setSize(1000, 500);
		setTitle("Plánovač úloh");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		nastroje.setFloatable(false);
		nastroje.add(nova_uloha);

		nova_uloha.addMouseListener(new NovaUl());
	}
private class NovaUl extends MouseAdapter{
		JFrame pan3 = new JFrame();
		JButton uloz = new JButton("uloz");
		
		public void mouseClicked(MouseEvent e){
			pan3.setSize(250, 400);
			pan3.setResizable(false);
	      pan3.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			
			pan3.add(uloz);
			uloz.addActionListener(new Uloz());
			pan3.setVisible(true);
			
		}
		private class Uloz implements ActionListener{
			public void actionPerformed(ActionEvent e){
				System.out.println("Pridal som ulohu");
				pan3.dispose();
				pan3.setVisible(false);
			}
		}
		
	}
}
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

dante18 napísal:ok tak tu je ten kod , to podstatne z neho:

Kód: Vybrať všetko

public class GUI extends JFrame{
	JButton nova_uloha = new JButton("Nova úloha");
JToolBar nastroje = new JToolBar();
public GUI(){
		setSize(1000, 500);
		setTitle("Plánovač úloh");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		nastroje.setFloatable(false);
		nastroje.add(nova_uloha);

		nova_uloha.addMouseListener(new NovaUl());
	}
private class NovaUl extends MouseAdapter{
		JFrame pan3 = new JFrame();
		JButton uloz = new JButton("uloz");
		
		public void mouseClicked(MouseEvent e){
			pan3.setSize(250, 400);
			pan3.setResizable(false);
	      pan3.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
			
			pan3.add(uloz); 
			//uloz.addActionListener(new Uloz());
			pan3.setVisible(true);
			
		}
		private class Uloz implements ActionListener{
			public void actionPerformed(ActionEvent e){
				System.out.println("Pridal som ulohu");
				pan3.dispose();
				pan3.setVisible(false);
			}
		}
		
	}
}
nepridavaj addActionListener pri kazdom kliknuti mysi, ale v konstruktore!
povedal by som ti aj kde presne, ale tvoja naming konvecia premennych a celkovo ten kod je taky strasny ze sa v tom neda normalne orientovat ... dufam ze to nemas na VPPJ z FIIT :)

aby som nekritizoval len a troha helfol, nemozes pomenovat JButton ze uloz a potom mat nejaku triedu ze Uloz ... musi to mat nejaky logicky nazov, napr ulozButton alebo buttonUloz ...

takisto, preco buttonu davas mouselistener, ked jedine co pouzivas je mouse clicked??? nad tym by som sa zamyslel ...
dante18
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 82
Registrovaný: 30 jún 2006, 21:29
Kontaktovať používateľa:

Príspevok od používateľa dante18 »

zaggi diki, mooc si mi pomohol, uz to funguje. no FIIT si trafil ale som len prvak, mam to na OOP. a dik za rady, mas pravdu mam v tom bordel :?
zaggi
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 314
Registrovaný: 04 feb 2007, 19:32

Príspevok od používateľa zaggi »

takto by to malo (mohlo) vyzerat:

Kód: Vybrať všetko

public class GUI extends JFrame
{
	private JButton novaUlohaButton = new JButton("Nova úloha");
	private JToolBar nastrojeToolbar = new JToolBar();

	public GUI()
	{
		setSize(1000, 500);
		setTitle("Plánovač úloh");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

		nastrojeToolbar.setFloatable(false);
		nastrojeToolbar.add(novaUlohaButton);

		novaUlohaButton.addActionListener(new ActionListener()
		{
			public void actionPerformed(ActionEvent arg0)
			{
				new NovaUl().setVisible(true);
			}
		});
	}
}

class NovaUl extends JFrame
{
	private JButton ulozButton = new JButton("uloz");

	public NovaUl()
	{
		setSize(250, 400);
		setResizable(false);
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		add(ulozButton);

		class akciaZavriOkno implements ActionListener
		{
			JFrame majitel;
			
			public akciaZavriOkno(JFrame majitel)
			{
				this.majitel = majitel;
			}
			
			public void actionPerformed(ActionEvent e)
			{
				System.out.println("Pridal som ulohu");
				// preco nevypisujes niekam do okna ale do konzoly?
				this.majitel.dispose();
				this.majitel.setVisible(false);
			}
		}

		ulozButton.addActionListener(new akciaZavriOkno(this));
	}
}
dante18
Medium Expert
Medium Expert
Používateľov profilový obrázok
Príspevky: 82
Registrovaný: 30 jún 2006, 21:29
Kontaktovať používateľa:

Príspevok od používateľa dante18 »

dik, skusim to este prerobit, (ten vypis do konzoly bol len pre kontrolu, inak je tam ukladanie do suboru)
beluský
Darca
Darca
Používateľov profilový obrázok
Príspevky: 317
Registrovaný: 21 sep 2006, 13:46

Príspevok od používateľa beluský »

Vytvorím si okno JFrame a na ňom jeden JPanel (MainPanel)... teraz budem mať rôzne formuláre (JPanel-y) ako napríklad WelcomePanel a EndPanel.

Kód: Vybrať všetko

public class MainFrame extends javax.swing.JFrame {

public MainFrame() {
    super("test");
    initComponents();    
    setVisible(true);

    MainPanel = new WelcomePanel();
    ....
    MainPanel = new EndPanel();
}
}
prečo nefunguje MainPanel = new Object(); ?
chcem vlastne jednoducho meniť obsah JPanel-ov podľa príslušnej udalosti.
Napísať odpoveď