Java Graphics. DrawLine / drawRect miért nem működik?
Adott egy main class valamint egy GUI class amely konstruktor segítségével jelenít meg egy üres ablakot.
A GUI classon belül van a Graphics paint metódusa amellyel egy vonalat szeretnék kirajzolni az ablakra, de a vonal nem jelenik meg. Miért van ez?
Azért nem értem, mert a Netbeans-el készített JFrame formba ha ugyan ezeket beirom mégis megjelenik a vonal. (ugyan az a paint metódus ugyan ott...)
package proba;
public class Proba {
public static void main(String[] args) {
GUI gui = new GUI();
}
} //Probaclass vége
______________________________________
package proba;
import java.awt.Graphics;
import javax.swing.JFrame;
public class GUI{
JFrame ablak;
Graphics g;
public void paintComponent(Graphics g){
g.drawLine(70, 70, 70, 120);
g.drawRect(90, 90, 100, 100);
}
public GUI(){
ablak = new JFrame("Graphics proba");
ablak.setSize(400,300);
ablak.setVisible(true);
ablak.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Tessék
Sikerült megcsinálni így:
package proba;
public class Proba {
public static void main(String[] args) {
GUI gui = new GUI();
}
}
_______________________________________________________
package proba;
import java.awt.Graphics;
import javax.swing.JFrame;
public class GUI {
JFrame ablak;
Grid grid = new Grid();
public GUI(){
ablak = new JFrame("Graphics proba");
ablak.setSize(400,300);
ablak.setVisible(true);
ablak.add(grid);
ablak.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
_____________________________________________________
package proba;
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class Grid extends JPanel {
public void paintComponent(Graphics g){
super.paintComponent(g);
g.setColor(Color.BLACK);
g.drawRect(20,20,100,100);
}
}
De nem értem, hogy miért nem működik csak simán a GUI classban paint(...)-el
Nem vágom
Nem értem azt se, hogy ha a NetBeans-el csinálok egy JFrame formot és oda bebiggyesztek egy olyat, hogy
public void paint(Graphics g){
g.drawRect(20,20,100,100);
}
akkor az meg miért működik simán
Lehet nemkéne erőltetni az oop programozást? xD
Itt egy másik példa:
Ne add fel, csak olvass utána. (Pl. a Java/swing osztály-hierarchiának és általában az öröklésnek, virtuális metódusoknak, metódus túlherhelésnek, stb.)
És ha nem megy, lépj vissza egy egyszerűbb feladathoz.
:)
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!