Article View: pl.comp.lang.java
Article #141766Re: menu w osobnej klasie
From: mk
Date: Sat, 18 Oct 2008 14:18
Date: Sat, 18 Oct 2008 14:18
104 lines
3552 bytes
3552 bytes
Maciek - Wally pisze:
> mk pisze:
>> Witam
>>
>> Mam klasę Start wyświetlającą okienko JFrame, w innej klasie MenuGora
>> definiuję sobie ikonki na panelu JPanel.
>> Jak teraz w klasie Start wywołać ten panel z ikonkami z klasy MenuGora?
>> Czy jak takich okienek będę miał więcej, to dla każdego mogę wywoływać
>> analogicznie ten panel, czy wcześniej muszę coś z pamięci usuwać?
>> Dzięki
>> pozdr.
>> mk
>>
> Musisz jakoś przekazać klasie Start referencję do tego panelu. Z tego,
> co napisałeś, wnioskuję, że klasa Start zawiera maina, w którym tworzysz
> obiekt panelu (jeżeli jest inaczej, napisz). Więc po prostu zachowaj tą
> referencję dopisując przed new nazwę typu oraz Twojej zmiennej, np.
> MenuGora mojeMenu=new MenuGora(...); Odtąd do panelu możesz odwołać się
> poprzez mojeMenu
>
No nie do końca. Może doprecyzuję.
Jest klasa Main. ktora wywołuje Start:
public static void main(String[] args) {
Start ramka = new Start("testowy programik");
ramka.setVisible(true);
}
Klasa Start:
public class Start extends JFrame
{
public Start()
{
init();
}
public Start(String title)
{
super(title);
init();
}
private void init()
{
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
URL file = Start.class.getResource("ikonka.png");
ImageIcon imageIcon = new ImageIcon(file);
setIconImage(imageIcon.getImage());
setSize(640,480);
setResizable(false);
setLocationRelativeTo( null );
GridBagLayout gbl = new GridBagLayout();
getContentPane().setLayout(gbl);
GridBagConstraints gbc = new GridBagConstraints();
PanelStart panel = new PanelStart();
gbc.gridx = 0;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.weighty = 1;
gbc.fill = GridBagConstraints.BOTH;
getContentPane().add(panel, gbc);
}
}
I jest klasa PanelStart:
public class PanelStart extends JPanel
{
private Image aImage = null;
public PanelStart()
{
init();
}
private void init()
{
URL file = PanelStart.class.getResource("tlo.png");
ImageIcon imageIcon = new ImageIcon(file);
aImage = imageIcon.getImage();
}
@Override
public void paint(Graphics g)
{
super.paint(g);
g.drawImage(aImage, 50,50, this);
}
}
No i oczywiście klasa MenuGora:
public class MenuGora extends JPanel {
ImageIcon PLista = new ImageIcon("lista.png");
JPanel PanelGora = new JPanel();
JButton b1=new JButton(PLista);
}
pozdr.
mk
Technical Details
Message-ID:
<gdcrmq$ob2$1@nemesis.news.neostrada.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.internetia.pl!news.intelink.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mailReferences:
<gd9p9p$cvg$1@atlantis.news.neostrada.pl> <gdb0fi$jlv$1@atlantis.news.neostrada.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!news.internetia.pl!news.intelink.pl!newsfeed.neostrada.pl!atlantis.news.neostrada.pl!news.neostrada.pl!not-for-mail From: mk <marcinkal@mkintegrator.pl> Newsgroups: pl.comp.lang.java Subject: Re: menu w osobnej klasie Date: Sat, 18 Oct 2008 16:18:35 +0200 Organization: TP - http://www.tp.pl/ Lines: 104 Message-ID: <gdcrmq$ob2$1@nemesis.news.neostrada.pl> References: <gd9p9p$cvg$1@atlantis.news.neostrada.pl> <gdb0fi$jlv$1@atlantis.news.neostrada.pl> NNTP-Posting-Host: acpc4.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.neostrada.pl 1224339994 24930 83.10.208.4 (18 Oct 2008 14:26:34 GMT) X-Complaints-To: usenet@news.neostrada.pl NNTP-Posting-Date: Sat, 18 Oct 2008 14:26:34 +0000 (UTC) User-Agent: Thunderbird 2.0.0.17 (X11/20080925) In-Reply-To: <gdb0fi$jlv$1@atlantis.news.neostrada.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit