有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

旋转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);

我有这个:

enter image description here

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


共 (1) 个答案

  1. # 1 楼答案

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