0
Jbutton을 확장하여 응용 프로그램에 대한 사용자 지정 단추를 만들었습니다. 원하는대로 그려야합니다. 그러나 어떤 이유로 든 생성자에서 setMargin()
을 호출하더라도, 버튼은과 같이, 0 마진이 : 내 코드에서 잘못하고 있어요 뭔가사용자 JButton의 여백 - Java
있습니까? 표준 JButton에는 여백이 어떻게 있습니까?하지만 사용자 정의 단추는 어떻게 사용합니까?
내 버튼의 자바 코드 :
는public class CToolbarButton extends JButton
{
private static final Dimension SIZE = new Dimension(48, 48);
private static final int MARGIN_VAL = 50;
private static final Insets MARGIN = new Insets(MARGIN_VAL, MARGIN_VAL, MARGIN_VAL, MARGIN_VAL);
private static final Color FILL_NORM = Color.GRAY;
private static final Color FILL_ACTIVE = new Color(FILL_NORM.getRed()-25, FILL_NORM.getGreen()-25, FILL_NORM.getBlue()-25);
private static final Color BORDER_NORM = Color.BLACK;
private static final Color BORDER_ACTIVE = Color.YELLOW;
public CToolbarButton()
{
super();
setContentAreaFilled(false);
setFocusable(false);
setMargin(MARGIN);
}
@Override
public void paintComponent(Graphics g)
{
if (getModel().isArmed())
{
g.setColor(FILL_ACTIVE);
}
else
{
g.setColor(FILL_NORM);
}
g.fillRect(0, 0, getWidth(), getHeight());
}
@Override
public void paintBorder(Graphics g)
{
if (getModel().isArmed())
{
g.setColor(BORDER_ACTIVE);
}
else
{
g.setColor(BORDER_NORM);
}
g.drawRect(0, 0, getWidth(), getHeight());
}
@Override
public boolean contains(int x, int y)
{
return (x >= 0 &&
x <= getWidth() &&
y >= 0 &&
y <= getHeight());
}
@Override
public Dimension getPreferredSize()
{
return SIZE;
}
@Override
public Dimension getMinimumSize()
{
return SIZE;
}
@Override
public Dimension getMaximumSize()
{
return SIZE;
}
}
* "Jbutton을 확장하여 응용 프로그램에 대한 사용자 지정 단추를 만들었습니다."* 왜? 스윙'JButton '을 능가하는 버튼의 특징은 무엇입니까? * "내가 원하는 방식으로 페인트 칠해야 겠지만 .."* 놀랄만 한 컬러가 있지만 '그러나'입니다. –
내가 맞춤 페인트를하고 싶고 서브 클래스를 만들지 않고 어떻게해야할지 모르겠다. – rcplusplus
어떤 종류의 사용자 정의 페인팅입니까? 구체적으로 말하십시오 .. –