Jak wyświetlić wiadomość

0

Mam pytanie. Piszę aplikację okienkową i nie wiem za pomocą jakiej komendy wyświetlić w tym samym oknie tekst za pomocą JLabela nie tracąc menu?Oto kawałek kodu:

public void actionPerformed(ActionEvent e) {
		String cmd=e.getActionCommand();
		if("Ligue 1".equals(cmd)) {
			//tu ma być ta komenda i tekst
	}
}
0

Na początku dodaj JLabel z pustym tekstem, a w metodzie actionPerformed wywołaj metodę setText(...).

0

Ale jak to zrobić?Zrobiłem tak i nadal nic..

import javax.swing.*;
import java.awt.event.*;

public class Main extends JFrame implements ActionListener {
	public Main() {
		super("Ligi");
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		setSize(500,350);
		setLayout(null);
		
		JMenu menu1=new JMenu("Ligi świata");
		JMenu menu2=new JMenu("Francja");
		JMenuItem item1=new JMenuItem("Ligue 1");
		item1.addActionListener(this);
		menu2.add(item1);
		JMenu menu3=new JMenu("Hiszpania");
		JMenuItem item2=new JMenuItem("La Liga");
		item2.addActionListener(this);
		menu3.add(item2);
		JMenu menu4=new JMenu("Holandia");
		JMenuItem item3=new JMenuItem("Eredivisie");
		item3.addActionListener(this);
		menu4.add(item3);
		JMenu menu5=new JMenu("Niemcy");
		JMenuItem item4=new JMenuItem("Bundesliga");
		item4.addActionListener(this);
		menu5.add(item4);
		JMenu menu6=new JMenu("Polska");
		JMenuItem item5=new JMenuItem("Ekstraklasa");
		item5.addActionListener(this);
		menu6.add(item5);
		JMenu menu7=new JMenu("Włochy");
		JMenuItem item6=new JMenuItem("Serie A");
		item6.addActionListener(this);
		menu7.add(item6);
		
		menu1.add(menu2);
		menu1.add(menu3);
		menu1.add(menu4);
		menu1.add(menu5);
		menu1.add(menu6);
		menu1.add(menu7);
		JMenuBar menuBar=new JMenuBar();
		menuBar.add(menu1);
		setJMenuBar(menuBar);
	}
	public void actionPerformed(ActionEvent e) {
		String cmd=e.getActionCommand();
		if("Ligue 1".equals(cmd)) {
			JLabel label=new JLabel();
			label.setText("tekst");
		}
	}
	public static void main(String[] args) {
		SwingUtilities.invokeLater(new Runnable() {
			public void run(){
			new Main();
			}
		});

	}

}
0

Nie pisałem żebyś w metodzie actionPerformed tworzył nowy JLabel. Masz wykorzystać istniejący, który tworzysz w konstruktorze.

0

aaa...no tak sorka:D

0

No okej wszystko niby śmiga tylko że ja mam tu zrobione menuBar tak? a więc teraz ten tekst wyświetla mi się ciągle tylko pod rozwinięta listą menu i nie potrafie tego tekstu nigdzie przesunac... próbowałem już użyć setBounds ale to nic nie daje. Co jeszcze może zadziałać?

0

Co Ty opowiadasz.

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
 
public class Main extends JFrame implements ActionListener {
    JLabel info = new JLabel();
    public Main() {
        super("Ligi");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setVisible(true); //przenieś na koniec konstruktora
        setSize(500,350);
        info.setBounds(200,40,100,60);
        setLayout(null);
        add(info);
...
        if("Ligue 1".equals(cmd)) {
            info.setText("tekst");
        }

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