旋转Java:JPanel边框旋转,但背景不旋转
在旋转JPanel时有一个奇怪的问题
JPanel pnlDummy = new javax.swing.JPanel()
{
@Override
public void paintComponent(Graphics g)
{
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.rotate(17 * (Math.PI/180));
};
};
pnlDummy.setBackground(Color.red);
pnlDummy.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 153, 0), 4));
pnlDummy.setMinimumSize(new Dimension(200,100));
pnlDummy.setPreferredSize(new Dimension(200,100));
pnlDummy.setMaximumSize(new Dimension(200,100));
pnlParent.add(pnlDummy);
我有这个:
相反,我希望红色背景像边框一样旋转。我错过了什么?谢谢大家!
# 1 楼答案
重写的
paintComponent(g)
控制JPanel内部的绘制JPanel
的布局没有改变,背景填充了它如果要更改绘制背景的方式,请在覆盖的
paintComponent(g)
中绘制背景。 如果要更改JPanel
在其父级中的绘制方式,则需要重写父级的paintComponent(g)
(覆盖
paintComponent(g)
表示覆盖布局管理器定义的布局)