Java:JPanel边框旋转,但背景不旋转

时间:2017-08-13 01:20:56

标签: java rotation 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);

我有这个:

enter image description here

相反,我希望红色背景像边框一样旋转。我错过了什么?谢谢!

1 个答案:

答案 0 :(得分:1)

你覆盖的paintComponent(g)控制JPanel内部的绘画 JPanel的布局不会改变,背景会填充它。
如果要更改背景的绘制方式,请在覆盖的paintComponent(g)中绘制它。 如果您想更改JPanel在其父级中的绘制方式,则需要覆盖父级paintComponent(g)
(重写paintComponent(g)表示您覆盖布局管理器定义的布局。