Wywołanie funkcji paint w JFrame

Odpowiedz Nowy wątek
2011-08-23 22:18
0

Mam taki oto kod:

import java.awt.*;
import javax.swing.*;
 
public class Gra extends JFrame{
    public Gra(){
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(null);
        setTitle("Gra");
 
        setSize(640, 480);
        setVisible(true);
    }
    public void paint(Graphics grafika){
        grafika.clearRect(0, 0, getSize().width, getSize().height);
        grafika.drawString("Jakiś tekst", 20, 20);
    }
    public static void main(String args[]){
        SwingUtilities.invokeLater(new Runnable(){
            public void run(){
                new Gra();
            }
        });
    }
}

Jak wywołać funkcję paint w tym wypadku, aby wyświetliła jakiś tam przykładowy tekst?

Pozostało 580 znaków

2011-08-23 23:08

A tak nie można?

import java.awt.*;
import javax.swing.*;
 
public class Gra extends JFrame {
 
    public static void main(String args[]) {
    SwingUtilities.invokeLater(new Runnable() {
        @Override
        public void run() {
        Gra gra = new Gra();
        }
    });
    }
 
    public Gra() {
 
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setTitle("Gra");
    setSize(640, 480);
    setVisible(true);
    getContentPane().add(new Grafika());
    }
}
 
class Grafika extends JPanel{
 
    @Override
    public void paint(Graphics g) {
    g.clearRect(50, 50, 100, 100);
    g.drawString("Jakiś tekst", 20, 20);
    }
} 

Pozostało 580 znaków

2011-08-24 00:19
0

A no jak widać można... Szkoda, że wcześniej tego nie wiedziałem :)
Dziękuję za pomoc, pozdrawiam!

Pozostało 580 znaków

2011-08-24 14:44
szypxx
0

Masz tu szablon na wzór - może ci się przyda albo cokolwiek.

import java.awt.*;
import javax.swing.*;
 
public class Gra {
 
    public static void main(String args[]) {
    EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
        JFrame f = new PanelFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setTitle("Gra");
        f.setSize(640, 480);
        f.setVisible(true);
        f.setLocationRelativeTo(null);
        }
    });
    }
}
 
class PanelFrame extends JFrame{
    JLabel label;
 
    public PanelFrame(){
 
        label = new JLabel("PanelFrame");
        add(label, BorderLayout.NORTH);
        add(new Grafika(), BorderLayout.CENTER);
    }
    }
 
class Grafika extends JPanel{
 
    @Override
    public void paint(Graphics g) {
    g.clearRect(50, 50, 100, 100);
    g.drawString("Jakiś tekst", 20, 20);
    }
} 

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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