[java apps][netbeans i eclipse] nie wyswietla stringa

0
import java.awt.Graphics;
import javax.swing.*;
import javax.swing.JFrame;


public class okienko extends JFrame{
	public okienko(){
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setSize(320,200);
		setVisible(true);
	}
	
	public void paint(Graphics gDC){
		gDC.clearRect(0,0,getSize().width,getSize().height);
		gDC.drawString("ASDA", 10, 50);
	}
	
	public static void main(String args[]){
				SwingUtilities.invokeLater(new Runnable() {
					public void run() {
						new okienko();
					}
				});
	}
}

dzialam pod debianem, kiedy odpale ten program pod netbeans albo eclipse wyswietla mi sie puste okno, natomiast kiedy odpale go z konsoli wyswietla tekst. Dodam ze program jest wziety z ksiazki "Praktyczny kurs Java". Ktos moze wie jak to naprawic? pewnie jakies ustawienia ale nie moge nic znalezc..

0

Czy Eclipse/NB wyświetla jakieś błędy w konsoli błędów?

0

nie wyswietla...

0

U mnie (Windows XP, Eclipse 3.3) napis się pojawia
pozdrawiam

0

paintComponent a nie paint,
jako 1 linijka - super.paintComponent(),
szukaj na forum

pozdrawiam

0

<code =java>
import java.awt.Graphics;
import javax.swing.*;
import javax.swing.JFrame;

public class okienko extends JFrame{
public okienko(){
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(320,200);
setVisible(true);
}

public void paintComponents(Graphics gDC){
        super.paintComponents(gDC);
	gDC.clearRect(0,0,getSize().width,getSize().height);
	gDC.drawString("ASDA", 10, 50);
}

public static void main(String args[]){
			SwingUtilities.invokeLater(new Runnable() {
				public void run() {
					new okienko();
				}
			});
}

}


hmm o cos takiego chodzi? jesli tak to nie pomoglo...
0

Sprawdź czy metoda paint (paintComponent) się wykonuje:
Wstaw do metody
System.out.println("a kuku"):
lub bardziej informacyjne
System.out.println(gDC.getColor()):
pozdrawiam

0

wyglada na to, ze nie bogdans

0

rozszerz JPanel, przeslon paintComponent i dodaj do JFrame z layoutem BorderLayoutn na BorderLayout.CENTER

pozdrawiam

0

Zawsze do tej pory rysowałem na obiektach klasy JPanel lub Canvas, przypuszczam zatem że pomysł eximiusa zadziała. Ale to jest ominięcie problemu: Dlaczego oryginalny program niekiedy rysuje (wywoływana jest metoda paint(..)) (uruchonienie z konsoli, Windows XP i uruchomienie z IDE), a niekiedy (Debian i uruchomienie z IDE) nie rysuje.
pozdrawiam

0

na canvas zadziala, dzieki eximus, ale jak pisze bogdans ciekawe czemu ten kod wyzej nie dziala

0

po ramce nie powinno sie bezposrednio mazac - do tego sluza inne komponenty (trzeba poszukac w dokumentacji dlaczego tak sie dzieje lub dac na forum sun'a)
BTW - a moze sie nie odswieza? zaslon innym okienkiem i zobacz co bedzie

pozdrawiam

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