Java 在我的钟面上添加JLabel不起作用
我尝试过,添加了flowlayout,如其他答案所示,但仍然不起作用 我还尝试将我的JLabel代码转移到构造函数中,但这也不起作用Java 在我的钟面上添加JLabel不起作用,java,jpanel,jlabel,Java,Jpanel,Jlabel,我尝试过,添加了flowlayout,如其他答案所示,但仍然不起作用 我还尝试将我的JLabel代码转移到构造函数中,但这也不起作用 public class Paint { public static void main(String[] args) { JFrame frame = new JFrame("Paint"); frame.setSize(500,500); frame.setDefaultCloseOperation(f
public class Paint {
public static void main(String[] args) {
JFrame frame = new JFrame("Paint");
frame.setSize(500,500);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
Draw draw = new Draw();
frame.add(draw);
frame.setVisible(true);
}
}
public class Draw extends JPanel{
public Draw(){
JLabel one = new JLabel("12",JLabel.CENTER);
setLayout(new FlowLayout());
add(one);
}
public void paint(Graphics g){
g.drawOval(70, 60, 190, 190);
g.setColor(Color.BLACK);
g.drawLine(90, 160, 170, 160);
g.drawLine(120, 190,170 , 160);
g.setColor(Color.GRAY);
g.fillOval(155, 153, 20, 20);
}
}
将绘制更改为替代绘制组件
在进行任何自定义绘制之前,请调用super.paintComponent
幸运的话,首先在你的绘画方法中调用super.paint,这应该可以解决眼前的问题,好的,现在重写paintComponent而不是paint,它通常更安全。别忘了调用它的superpublic void paintComponentGraphics g{对我有效…我做到了,现在有效。不知道它为什么昨天不起作用。谢谢。
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class Paint {
public static void main(String[] args) {
JFrame frame = new JFrame("Paint");
frame.setSize(500, 500);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
Draw draw = new Draw();
frame.add(draw);
frame.setVisible(true);
}
public static class Draw extends JPanel {
public Draw() {
JLabel one = new JLabel("12", JLabel.CENTER);
setLayout(new FlowLayout());
add(one);
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawOval(70, 60, 190, 190);
g.setColor(Color.BLACK);
g.drawLine(90, 160, 170, 160);
g.drawLine(120, 190, 170, 160);
g.setColor(Color.GRAY);
g.fillOval(155, 153, 20, 20);
}
}
}