gpt4 book ai didi

java - 如何填充按钮中的剩余部分?

转载 作者:行者123 更新时间:2023-12-01 07:33:02 25 4
gpt4 key购买 nike

我一直在尝试圆形按钮,但这里有问题。目前我得到一个像这样的按钮:

enter image description here

我想要做的是填充按钮方 block 中的剩余部分。我该怎么做呢 ?这是绘制此按钮的代码。

import javax.swing.*;
import java.awt.*;

class Tester extends JButton {

public Tester(String label) {
super(label);
setContentAreaFilled(false);
Dimension size = this.getPreferredSize();
size.width = size.height = Math.max(size.width,size.height);
this.setPreferredSize(size);

}

@Override
public void paintComponent(Graphics g) {System.out.println("Inside the paintComponent method");
if (getModel().isArmed()) {
g.setColor(Color.lightGray);
} else {
g.setColor(getBackground());
}
g.fillOval(0,0,getSize().width-1,getSize().height-1);
System.out.println(getSize().width);
System.out.println(getSize().height);
super.paintComponent(g);
}


public static void main(String args[]) {
JFrame fr = new JFrame();
JPanel p = new JPanel();
JButton button = new Tester("Click Me !");
button.setBackground(Color.GREEN);
p.add(button);
fr.add(p);
fr.setVisible(true);
fr.setSize(400,400);
fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

如何填写按钮中的剩余部分?

最佳答案

您可以在调用 fillOval() 之前使用 fillrect() 方法填充剩余部分

    @Override
public void paintComponent(Graphics g) {
System.out.println("Inside the paintComponent method");
g.setColor(Color.red); // here
g.fillRect(0, 0, this.getWidth(), this.getHeight()); //here

if (getModel().isArmed()) {
g.setColor(Color.lightGray);
} else {
g.setColor(getBackground());
}

g.fillOval(0, 0, getSize().width - 1, getSize().height - 1);
System.out.println(getSize().width);
System.out.println(getSize().height);
super.paintComponent(g);
}

像上面那样做我会得到

enter image description here

希望这有帮助。

关于java - 如何填充按钮中的剩余部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15727591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com