Zmena panelu po kliknuti na tlacitko – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Zmena panelu po kliknuti na tlacitko – Java – Fórum – Programujte.comZmena panelu po kliknuti na tlacitko – Java – Fórum – Programujte.com

 

BigBear0
Stálý člen
1. 1. 2010   #1
-
0
-

Ahojte, chtel bych poprosit o nasmerovani (naznak reseni, odkaz na manualove stranky, ...) na vyreseni nasledujiciho problemu:
mam kod

public class mojeTrida extends JFrame {

public mojeTrida() {
this.setTitle("Nazev okna");
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

// menu
JMenu polozkaMenu = new JMenu();
polozkaMenu.setText("Nazev polozky menu");

JMenuItem podpolozkaMenu = new JMenuItem();
podpolozkaMenu.setText("Podpolozka");

polozkaMenu.add(podpolozkaMenu);

JMenuBar mojeMenu = new JMenuBar();
mojeMenu.add(polozkaMenu);

this.setJMenuBar(mojeMenu);

// hlavni panel
JPanel hlavniPanel = new JPanel();
JButton tlacitko = new JButton("Tlacitko");
hlavniPanel.add(tlacitko);

// dalsi panel
JPanel dalsiPanel = new JPanel();
JLabel text = new JLabel("POPISEK :-)");
dalsiPanel.add(text);

// obsah framu
this.getContentPane().add(hlavniPanel);
this.pack();
}
}

public class Main {

public static void main(String[] args) {
try {
UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName());
} catch (Exception e) {}

mojeTrida aplikace = new mojeTrida();
aplikace.setVisible(true);
}
}

Nyni by se melo po spusteni aplikace zobrazit okno s tlacitkem (tak vypada hlavni panel)... a ja chci po kliknuti na toto tlacitko zobrazit misto hlavniho panelu vedlejsi panel (ten s popiskem)...(take bych chtel trochu zmenit menu bar, ale az zjistim, jak udelat zmenu panelu, pak bude menu zajiste obdobne)... jak na to? Jak udelat tu akci? kdyz k tlacitku pridam posluchac akci (zavolam metodu addActionListener), tak nevidim promenne v moji tride, takze nevim, jak s nimi zachazet :-(... mockrat dekuji za rady.

Nahlásit jako SPAM
IP: 88.103.186.–
NECIN DRUHYM TO, CO NECHCES, ABY ONI CINILI TOBE!
Jura
~ Anonymní uživatel
637 příspěvků
2. 1. 2010   #2
-
0
-

Zdravim,

staci pouzit clenske promenne. Jinak pokud se snazis udelat vice takovych panelu pro ruzny stav aplikace, tzn. pokud se snazis udelat neco jako architekturu dokument/pohled nebo neco podobneho, tak pouziti panelu pro vetsi projekty neni moc dobre reseni. Pokud pouzivas NetBeans, tak ten tusim ma primo predchystane kostry pro desktopove aplikace a s vyzuzitim designeru, muzes tvorit aplikace mnohem rychleji.

import java.awt.event.*;

import javax.swing.*;

public class BigBearSample extends JFrame {

private JPanel firstPanel;
private JMenuBar firstMenu;

private JPanel secondPanel;
private JMenuBar secondMenu;

public BigBearSample() {
initComponents();
}

private void initComponents() {

init1stPanel();
init2ndPanel();

JPanel mainPanel = new JPanel();
mainPanel.add(firstPanel);
mainPanel.add(secondPanel);

getContentPane().add(mainPanel);
pack();
}

private void init1stPanel() {
firstPanel = new JPanel();
firstMenu = new JMenuBar();
JButton firstButton = new JButton("Druhy panel");

setJMenuBar(firstMenu);
firstPanel.add(firstButton);

firstMenu.add(new JMenuItem("Prvni"));
firstMenu.add(new JMenuItem("druhy"));

firstButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
on1stButton();
}
});
}

private void init2ndPanel() {
secondPanel = new JPanel();
secondMenu = new JMenuBar();
JButton secondButton = new JButton("Prvni panel");
JButton otherButton = new JButton("Dalsi tlacitko, at tam je neco navic");

secondPanel.add(secondButton);
secondPanel.add(otherButton);
secondPanel.setVisible(false);

secondMenu.add(new JMenuItem("Prvni"));
secondMenu.add(new JMenuItem("druhy"));
secondMenu.add(new JMenuItem("treti"));

secondButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
on2ndButton();
}
});
}


private void on1stButton() {
// vypne prvni panel
firstPanel.setVisible(false);

secondPanel.setVisible(true);
setJMenuBar(secondMenu);
}

private void on2ndButton() {
secondPanel.setVisible(false);

firstPanel.setVisible(true);
setJMenuBar(firstMenu);
}
}

Nahlásit jako SPAM
IP: 85.207.192.–
BigBear0
Stálý člen
2. 1. 2010   #3
-
0
-

Dekuji, zkusim tohle... ano, pouzivam NetBeans, jenze nesmim pouzivat predchystane kostry, musim vse psat sam... ale samozrejme, ze si pomoci nej pomaham... take jde ale o to, ze akce po kliknuti a tak musi clovek stejne psat sam ;-)... dekuji, vyzkousim :-)

Nahlásit jako SPAM
IP: 88.103.186.–
NECIN DRUHYM TO, CO NECHCES, ABY ONI CINILI TOBE!
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, 18 hostů

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ý