在Java中,JFrame是一个顶层容器,用于存放其他组件。当你需要重绘JFrame中的组件时,可以遵循以下步骤:
public class CustomComponent extends JComponent {
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g); // 必须首先调用父类的paintComponent方法,以确保正确绘制背景色等
// 在这里绘制你的组件内容
g.drawOval(50, 50, 100, 100); // 绘制一个椭圆
}
}
public class Main {
public static void main(String[] args) {
JFrame frame = new JFrame("Custom Component Example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(400, 400);
CustomComponent customComponent = new CustomComponent();
frame.add(customComponent);
frame.setVisible(true);
}
}
public class CustomComponent extends JComponent {
// ... 其他代码 ...
@Override
public void componentResized(ComponentEvent e) {
// 在这里绘制调整大小后的组件内容
repaint(); // 调用repaint()方法,以便触发paintComponent方法的调用
}
}
遵循以上步骤,你就可以处理JFrame类组件的重绘了。注意,为了确保正确的绘制顺序,你可能需要在自定义组件类中重写其他方法,例如getPreferredSize()和paintBorder()等。