我尝试在容器(JFrame)底部显示文本,但它没有出现....
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class Peintre extends JFrame implements MouseMotionListener {
private int valeurX ;
private int valeurY;
public Peintre() {
super("Programme simple de dessin");
addMouseMotionListener(this);
JLabel label = new JLabel("Tirer sur la souris pour dessiner");
label.setForeground(Color.PINK);
label.setFont(new Font("Arial", Font.PLAIN, 20));
add(label,BorderLayout.SOUTH);
setSize(700, 500);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g) {
g.fillOval(valeurX, valeurY, 15, 15);
}
public void mouseDragged(MouseEvent e) {
valeurX = e.getX();
valeurY = e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {}
public static void main(String[] args) {
new Peintre();
}
}
我试过了:
我想在框架底部显示多个字符
你已经超越了
public void paint(Graphics g)
您的 JFrame。这意味着您添加到其中的任何组件将不再绘制。调用
super.paint(g);
作为绘制实现中的第一个操作来调用 JFrame 实现,然后绘制椭圆形。
一般来说,你必须小心 Swing 中的重写方法。在这样做之前,请务必检查他们是否没有在做重要的事情。