Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Only 1 Corner is Rounded when I call fillRoundRect()

When run this code:

import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import javax.swing.JButton;
import javax.swing.JLabel;

public class CustomButton extends JButton {

    int width = 100;
    int height = 50;
    int radius = 10;
    JLabel lab;

    @Override
    protected void paintComponent(Graphics g) {
        Graphics2D g2 = (Graphics2D) g;

        g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
                RenderingHints.VALUE_ANTIALIAS_ON);
        g2.setColor(Color.ORANGE);
        g2.fillRoundRect(0, 0, width, height, radius, radius);
        
        g2.dispose();
        super.paintComponent(g2);
        super.paintComponent(g);

    }

}

And my other class:

package custom.frame;

import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class CustomFrame {

    public static void main(String[] args) {
        JFrame f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setLayout(new FlowLayout());
        f.setSize(500,500);
        f.setLocationRelativeTo(null);
        
        JPanel pane = new JPanel();
        pane.setBounds(0,0,500,500);
        
        CustomButton btn = new CustomButton();
        pane.add(btn);
        f.add(btn);
        f.setVisible(true);
        
    }

}

I get a get a regular rectangle with only 1 rounded side. Please see the image below.

enter image description here

Is this the expected function? If not, how can I fix this.

Edit

I can get 2 rounded corners if I do this: g2.fillRoundRect(0, 0, 50, 50, 7, 7);

like image 519
Fouroh3 Avatar asked Nov 27 '25 12:11

Fouroh3


1 Answers

The only thing I can really think of is that the window containing the rectangle is too small and is cutting off the other three corners, but that seems pretty unlikely.

like image 71
John Smith Avatar answered Nov 29 '25 02:11

John Smith



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!