🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.java
Article #141766

Re: menu w osobnej klasie

#141766
From: mk
Date: Sat, 18 Oct 2008 14:18
104 lines
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-mail
References: <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