JButton クラスを拡張して独自のカスタム バージョンを作成しましたが、その上に JLabel を表示する方法がわかりません。通常のボタンでは、JLabel がその上に描画されますが、その動作を再現する方法がわかりません。方法はありますか?
これは、オーバーライドした paintComponent メソッドです。
@Override
protected void paintComponent(Graphics g){
super.paintComponent(g);
boolean isSelected = getModel().isPressed();
Color topColor = !isSelected ? BUTTON_TOP_GRADIENT : BUTTON_TOP_GRADIENT.darker();
Color bottomColor = !isSelected ? BUTTON_BOTTOM_GRADIENT : BUTTON_BOTTOM_GRADIENT.darker();
Graphics2D g2 = (Graphics2D)g.create();
RenderingHints qualityHints =
new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
qualityHints.put(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
g2.setRenderingHints(qualityHints);
g2.setPaint(new GradientPaint(
new Point(0, 0),
topColor,
new Point(0, getHeight()),
bottomColor));
g2.fillRoundRect(0, 0, getWidth(), getHeight(), BUTTON_CORNER_RADIUS, BUTTON_CORNER_RADIUS);
g2.setColor(Color.BLACK);
g2.dispose();
// Where I need to draw the JLabel
}