Zeichnen Sie eine Linie auf ein JFrame
Ich versuche, eine Linie zu ziehen mit der Graphics
2D aber dann die Zeile angezeigt wird, über alle die
die anderen Komponenten in der JFrame
wodurch Sie unsichtbar wird. Wie kann ich dieses problem beheben?
Hier der code :
import javax.swing.*;
import java.awt.*;
import java.awt.geom.*;
class Success extends JFrame{
public Success(){
JPanel panel=new JPanel();
getContentPane().add(panel);
setSize(450,450);
JButton button =new JButton("press");
panel.add(button);
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
Line2D lin = new Line2D.Float(100, 100, 250, 260);
g2.draw(lin);
}
public static void main(String []args){
Success s=new Success();
s.setVisible(true);
}
}
- Können Sie uns einen screenshot?
- Wie soll das problem behoben werden? Was möchten Sie, dass Ihr Programm zu tun?
- Ich konnte nicht verstehen, ziehen Sie eine Linie auf Ihre
JFrame
, dann werden Sie das hinzufügen von Komponenten auf IhremJFrame
, also was diese Zeile ist für, wenn Sie ausblenden möchten diese mit Ihren Komponenten. Stattdessen zeichnen Sie diese Linie durch die VerlängerungJPanel
und überschreibenpaintComponent(...)
, so dass es sichtbar sein, zusammen mit anderen Komponenten 🙂 Einfach zum zeichnen einer Linie, sollte man nicht einfach überschreibenpaint(...)
Methode versuchen zu überschreibenpaintComponent(...)
durch Zeichnung an der Spitze von einemJComponent/JPanel
- wenn die Anwendung beginnt mit einer Zeile, als auch die Taste angezeigt die alle in den gleichen Rahmen
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weitere Tipps
JPanel
wie vorgeschlagen von @nIcEcOw, überschreibenpaintComponent(Graphics)
stattpaint()
. Wieder rufen Sie diesuper
Methode zuerst.pack()
.