我在將圖形添加到JPanel時遇到問題。如果我從panel.add(new graphics())更改該行; frame.add(new graphics());並且不要將JPanel添加到JFrame中,黑色矩形將出現在JFrame上。我只是不能讓黑色的矩形出現在JPannel上,並想知道是否有人可以幫助我。如何在JPanel上放置圖形?
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Catch{
public class graphics extends JComponent{
public void paintComponent(Graphics g){
super.paintComponents(g);
g.fillRect(200, 62, 30, 10);
}
}
public void createGUI(){
final JFrame frame = new JFrame();
JPanel panel = new JPanel();
frame.setSize(500,500);
frame.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e) {
System.out.println(e.getPoint().getX());
System.out.println(e.getPoint().getY());
}
});
panel.add(new graphics());
frame.add(panel);
frame.setVisible(true);
frame.setDefaultCloseOperation(frame.DISPOSE_ON_CLOSE);
}
public static void main(String[] args){
Catch GUI= new Catch();
GUI.createGUI();
}
}
'圖形'不是被添加到GUI元素的東西。基本上,擴展'JComponent'的每個組件都有一個'paint()'方法,該方法會自動傳遞到'Graphics g'對象中。然後引用該對象在當前元素上繪製圖形。查看['paint()'doc](http://docs.oracle.com/javase/1.5.0/docs/api/javax/swing/JComponent.html#paint(java.awt.Graphics))for更多。 – Jon
我試圖看看,但我仍然有點困惑。你認爲你可以給我一個例子嗎?我對於如何將其直接添加到框架,但不是面板,也有點困惑。 – dannyn382
'圖形'和'圖形'是不同的類,@Jon提到的只是部分應用。你嘗試過設置佈局管理器嗎? –