JMenu - otwieranie i inicjalizacja innych klas

0

Witam,
Mam pewien problem:
Mam 4 klasy w osobnych plikach, jedna klasa to menu, druga to kalk, trzecia to przelicznik a czwarta to binary.
W każdej klasie jest jakiś program. Zrobiłem menu z 3 przyciskami, aczkolwiek nie mogę znaleźć żadnego sposobu, by klikając np menu Kalkulator otwierała mi się klasa kalk. Szukałem na milion sposobów, i nie dałem rady, prosiłbym o małe wsparcie.
Pozdrawiam

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

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class menu extends JFrame implements ActionListener {




public menu(){
   
    JMenuBar MenuBar;   
    JMenu Kalkulator, Przelicznik, Binary;

    setTitle("MegaProg");
    setSize(600,600);
    setLayout(null);

    MenuBar = new JMenuBar();
   
    Kalkulator = new JMenu("Kalkulator");
    Kalkulator.addActionListener(this);
   
    Przelicznik = new JMenu("Przelicznik");
    Przelicznik.addActionListener(this);
   
    Binary = new JMenu("Binary");
    Binary.addActionListener(this);
   
    setJMenuBar(MenuBar);
    MenuBar.add(Kalkulator);
    MenuBar.add(Przelicznik);
    MenuBar.add(Binary);

   
   
   
   
}
   
   
   

public void actionPerformed(ActionEvent e) {
   
    Object źródło = e.getSource();
   
    File plik = new File();
    if(źródło==Kalkulator){
    plik.getClass(kalk);
   
    }
       
    }

   
public static void main(String[] args){
   

   
menu appMenu = new menu();
appMenu.setVisible(true);

}
0
if(źródło==Kalkulator)
{
    new kalk();
}
0
public void actionPerformed(ActionEvent e) {
	
	Object źródło = e.getSource();
	
	
	
	if(źródło==Kalkulator){
		new kalk();
	}

	else if(źródło==Przelicznik){
		new przelicznik();
		
	}
	
	else if(źródło==Binary){
		new binary();
	}
		
	}

Kalkulator cannot be resolved to a variable.
Hmm, dziwne, bo w w innej klasie gdzie mam same JButtony to bez problemu działa, pytanie czy JMenu też posiada taką funkcję ?

0

Zmienne Kalkulator, Przelicznik i Binary muszą być polami w klasie, a nie zmiennymi lokalnymi metody menu.
Btw, nie używaj polskich liter w nazwach zmiennych.

0

Coraz bliżej sukcesu ;) Jeszcze tylko dojdę do tego, dlaczego klikając w JMenuItem - np Kalkulator nie włącza sie klasa kalk, i będzie sukces :D

0

Może w konstruktorze klasy kalk nie ma setVisible(true);?

0
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

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

public class kalk extends JFrame implements ActionListener {

	JButton B1, B2, B3, B4, B5, B6, B7, B8, B9, Ba, Bb, Bc, Bd, Be;
	JTextField TextField;
	public kalk(){


....

public static void main(String[] args){
	
	
	kalk celsjusz1 = new kalk();
	
	celsjusz1.setVisible(true);
	



}
}
1

I jak widać w konstruktorze nie ma setVisible(true); - jest w metodzie main, a to coś zupełnie innego. Możesz zrobić tak:

        if(źródło==Kalkulator){
                new kalk().setVisible(true);
        }
0

Niesamowite :D Dzięki wielkie, teraz wszystko pięknie działa ;)

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