• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Czemu nie uruchamia mi się panel w tym oknie?

Object Storage Arubacloud
+1 głos
207 wizyt
pytanie zadane 21 lipca 2018 w Java przez Atarii Użytkownik (770 p.)

import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class Ramka extends JFrame {
	
	public JPanel menu;
	
	//tworzenie obiektu klasy Ramka, dziedziczącego po klasie JFrame, dzięki czemu tworzymy Ramkę z komponentami.
	public Ramka(){
		super("Atarii");	
		setLocationRelativeTo(null); //służy do tego, aby okno było na środku
		menu = new Menu(); //tworzenie JPanela który będzie menu
		menu.setBounds(0,0,900,900);
		add(menu);
		setSize(900,900);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	
	public static void main(String[] args){
		EventQueue.invokeLater(		new Runnable(){

			@Override
			public void run() {
				new Ramka();
				// TODO Auto-generated method stub
				
			}});
		

	}
 
}
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JPanel;

class Menu extends JPanel{
	public JButton nowaGra, opcje, wyjscie; //przyciski w menu
	public Menu(){	
		setSize(900,900);
		setVisible(true);
	}
	
	
	public void paint(Graphics2D g2){
		BufferedImage a;
		Graphics g=(Graphics2D)g2;
		try {
			a = ImageIO.read(new File("C:/Users/Krzysiek/Pictures/dsdsd.gif"));
			g.drawImage(a,0,0,this);
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

setLocationRelativeTo nie działa, oraz nie uruchamia się JPanel, co jest tego winą?

1 odpowiedź

0 głosów
odpowiedź 25 lipca 2018 przez Wiciorny Ekspert (269,710 p.)

Po pierwsze Ramka jest twoim Panelem ... 

this.getContentPane().add(new Menu()) ;

Po drugie, za każdym nowym obiektem byłyby nowe wartości.

nie wiem co niedziała/działa z racji tego że  dodaje panel jednak tobie chyba zalezy na wywołaniu funkcji paint... ale najpierw musisz ją powołać do działania, ona nie jest domyślnie uruchamiana z klasą. 

komentarz 25 lipca 2018 przez Wiciorny Ekspert (269,710 p.)

Po drugie- stosujesz nie tę metode co trzeba :... to nie jest domyślna metoda paint *( która nadpisana została by z klasy, stąd ona nie jest ładowana )

tak wygląda  prawdiłowo  - inny parametr.

Kompilator traktuje twój paint, jak twoją metode, a nie tą z klasy JPanel, przez co nie nadpisuje jej i nie jest ona wgl. powoływana do działania 

@Override
public void paint(Graphics g2){
    BufferedImage a;
    Graphics g=(Graphics2D)g2; // to mozna pominac ew zamienic  na rzutowanie na 2D 

Podobne pytania

0 głosów
3 odpowiedzi 750 wizyt
pytanie zadane 28 sierpnia 2017 w PHP przez Eleander Nowicjusz (240 p.)
0 głosów
1 odpowiedź 167 wizyt
pytanie zadane 10 listopada 2016 w HTML i CSS przez Kerdi26 Użytkownik (640 p.)
0 głosów
2 odpowiedzi 156 wizyt
pytanie zadane 16 maja 2015 w C i C++ przez TheSadSmile Użytkownik (870 p.)

92,551 zapytań

141,393 odpowiedzi

319,523 komentarzy

61,936 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...