1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets;
import java.awt.LayoutManager;
import java.awt.RenderingHints;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
import com.sun.java.swing.plaf.gtk.GTKLookAndFeel;
public class RoundCorneredPanel extends JPanel {
public RoundCorneredPanel() {
// TODO Auto-generated constructor stub
}
public RoundCorneredPanel(LayoutManager layout) {
super(layout);
// TODO Auto-generated constructor stub
}
public RoundCorneredPanel(boolean isDoubleBuffered) {
super(isDoubleBuffered);
// TODO Auto-generated constructor stub
}
public RoundCorneredPanel(LayoutManager layout, boolean isDoubleBuffered) {
super(layout, isDoubleBuffered);
// TODO Auto-generated constructor stub
}
@Override
protected void paintComponent(Graphics g) {
if(isShowing()) {
Insets insets = getBorder().getBorderInsets(this);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g.setColor(getBackground());
g.fillRoundRect(0+insets.left, 0+insets.top, getWidth()-insets.right-insets.left, getHeight()-insets.bottom-insets.top, 50, 50);
}
}
public static void main(String[] args) {
try {
UIManager.setLookAndFeel(new GTKLookAndFeel());
} catch (UnsupportedLookAndFeelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JFrame f = new JFrame();
RoundCorneredPanel p = new RoundCorneredPanel();
p.setBackground(Color.black);
p.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
f.add(p);
f.setSize(200, 200);
f.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);
}
} |
Partager