本文整理汇总了Java中java.awt.geom.RoundRectangle2D类的典型用法代码示例。如果您正苦于以下问题:Java RoundRectangle2D类的具体用法?Java RoundRectangle2D怎么用?Java RoundRectangle2D使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
RoundRectangle2D类属于java.awt.geom包,在下文中一共展示了RoundRectangle2D类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: paintComponent
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
/**
* Draws the component background.
*
* @param g
* the graphics context
*/
void paintComponent(Graphics g) {
RectangularShape rectangle;
int radius = RapidLookAndFeel.CORNER_DEFAULT_RADIUS;
switch (position) {
case SwingConstants.LEFT:
rectangle = new RoundRectangle2D.Double(0, 0, button.getWidth() + radius, button.getHeight(), radius,
radius);
break;
case SwingConstants.CENTER:
rectangle = new Rectangle2D.Double(0, 0, button.getWidth(), button.getHeight());
break;
default:
rectangle = new RoundRectangle2D.Double(-radius, 0, button.getWidth() + radius, button.getHeight(), radius,
radius);
break;
}
RapidLookTools.drawButton(button, g, rectangle);
}
示例2: paint
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
public void paint (Graphics2D gr, Rectangle bounds) {
Shape previousClip = gr.getClip ();
gr.clip (new RoundRectangle2D.Float (bounds.x, bounds.y, bounds.width, bounds.height, 4, 4));
drawGradient (gr, bounds, color1, color2, 0f, 0.3f);
drawGradient (gr, bounds, color2, color3, 0.3f, 0.764f);
drawGradient (gr, bounds, color3, color4, 0.764f, 0.927f);
drawGradient (gr, bounds, color4, color5, 0.927f, 1f);
gr.setColor (colorBorder);
Stroke previousStroke = gr.getStroke ();
gr.setStroke (stroke);
gr.draw (new RoundRectangle2D.Float (bounds.x + 0.5f, bounds.y + 0.5f, bounds.width - 1, bounds.height - 1, 4, 4));
gr.setStroke (previousStroke);
gr.setClip (previousClip);
}
示例3: drawTitleBar
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
private void drawTitleBar(Graphics2D g) {
Graphics2D g2 = (Graphics2D) g.create();
RoundRectangle2D titleBar = createTitleBarShape();
double h = SF * (TITLE_BAR_HEIGHT + CORNER_RADIUS) + 1;
g2.setPaint(new GradientPaint(0, 0, grayColor(GRAY_TOP),
0, (float) h, grayColor(GRAY_BOTTOM)));
g2.fill(titleBar);
g2.setColor(Color.DARK_GRAY);
g2.draw(titleBar);
g2.setColor(Color.BLACK);
int scaledSize = (int) Math.round(SF * TITLE_FONT_SIZE);
g2.setFont(Font.decode(TITLE_FONT_FAMILY + "-" + scaledSize));
FontMetrics fm = g2.getFontMetrics();
int x = (int) Math.round((sw - fm.stringWidth(title)) / 2);
int y = (int) Math.round(SF * (TITLE_BAR_HEIGHT / 2 + TITLE_DY));
g2.drawString(title, x, y);
drawBall(g2, RED_BALL, 0);
drawBall(g2, AMBER_BALL, 1);
drawBall(g2, GREEN_BALL, 2);
g2.dispose();
}
示例4: paint
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
@Override
public void paint(Graphics2D g) {
g.setColor(function.getBackground());
final Rectangle2D rect = movingArea.getBounds(getBounds());
RoundRectangle2D.Double rec = new RoundRectangle2D.Double(rect.getX(),
rect.getY(), rect.getWidth(), rect.getHeight(),
movingArea.getIDoubleOrdinate(4),
movingArea.getIDoubleOrdinate(4));
g.fill(rec);
g.setFont(function.getFont());
paintText(g);
paintBorder(g);
final Stroke tmp = g.getStroke();
g.draw(rec);
g.setStroke(tmp);
paintTringle(g);
}
示例5: fill
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
/**
* Fills the specified shape with the current {@code paint}. There is
* direct handling for {@code RoundRectangle2D},
* {@code Rectangle2D}, {@code Ellipse2D} and {@code Arc2D}.
* All other shapes are mapped to a path outline and then filled.
*
* @param s the shape ({@code null} not permitted).
*
* @see #draw(java.awt.Shape)
*/
@Override
public void fill(Shape s) {
if (s instanceof RoundRectangle2D) {
RoundRectangle2D rr = (RoundRectangle2D) s;
this.gc.fillRoundRect(rr.getX(), rr.getY(), rr.getWidth(),
rr.getHeight(), rr.getArcWidth(), rr.getArcHeight());
} else if (s instanceof Rectangle2D) {
Rectangle2D r = (Rectangle2D) s;
this.gc.fillRect(r.getX(), r.getY(), r.getWidth(), r.getHeight());
} else if (s instanceof Ellipse2D) {
Ellipse2D e = (Ellipse2D) s;
this.gc.fillOval(e.getX(), e.getY(), e.getWidth(), e.getHeight());
} else if (s instanceof Arc2D) {
Arc2D a = (Arc2D) s;
this.gc.fillArc(a.getX(), a.getY(), a.getWidth(), a.getHeight(),
a.getAngleStart(), a.getAngleExtent(),
intToArcType(a.getArcType()));
} else {
shapeToPath(s);
this.gc.fill();
}
}
示例6: setRoundedCorner
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
/**
* Rounds the corners of the bounding rectangle in which the text
* string is rendered. This will only be seen if either the stroke
* or fill color is non-transparent.
*
* @param arcWidth
* the width of the curved corner
* @param arcHeight
* the height of the curved corner
*/
public void setRoundedCorner( int arcWidth, int arcHeight )
{
if ( ( arcWidth == 0 || arcHeight == 0 ) &&
!( m_bbox instanceof Rectangle2D ) ) {
m_bbox = new Rectangle2D.Double();
}
else {
if ( !( m_bbox instanceof RoundRectangle2D ) )
m_bbox = new RoundRectangle2D.Double();
( (RoundRectangle2D)m_bbox )
.setRoundRect( 0, 0, 10, 10, arcWidth, arcHeight );
m_arcWidth = arcWidth;
m_arcHeight = arcHeight;
}
}
示例7: createGUI
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
private void createGUI(){
setLayout(new GridBagLayout());
addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
setShape(new RoundRectangle2D.Double(0, 0, getWidth(), getHeight(), WINDOW_RADIUS, WINDOW_RADIUS));
}
});
setAlwaysOnTop(true);
setUndecorated(true);
setFocusableWindowState(false);
setModalityType(ModalityType.MODELESS);
setSize(mText.length() * CHARACTER_LENGTH_MULTIPLIER, 25);
getContentPane().setBackground(mBackgroundColor);
JLabel label = new JLabel(mText);
label.setForeground(mForegroundColor);
add(label);
}
示例8: paintButton
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
private void paintButton(Graphics g, Color[] colors) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
int width = this.getWidth();
int height = this.getHeight();
Point2D center = new Point2D.Float(width / 2, height / 2);
float radius = width / 2;
float[] dist = { 0.0f, 0.8f };
RadialGradientPaint paint = new RadialGradientPaint(center, radius, dist, colors);
g2.setPaint(paint);
shape = new RoundRectangle2D.Double(0, 0, width, height, height, height);
g2.fill(shape);
Font defaultFont = getFont();
g2.setFont(defaultFont);
g2.setColor(Color.BLACK);
Rectangle2D rect = defaultFont.getStringBounds(text, g2.getFontRenderContext());
LineMetrics lineMetrics = defaultFont.getLineMetrics(text, g2.getFontRenderContext());
g2.drawString(text, (float) (width / 2 - rect.getWidth() / 2), (float) ((height / 2)
+ ((lineMetrics.getAscent() + lineMetrics.getDescent()) / 2 - lineMetrics.getDescent())));
}
示例9: paintButton
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
private void paintButton(Graphics g, Color[] colors)
{
Graphics2D g2 = (Graphics2D)g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
int width = this.getWidth();
int height = this.getHeight();
Point2D center = new Point2D.Float(width / 2, height / 2);
float radius = width / 2;
float[] dist = {0.0f, 0.8f};
RadialGradientPaint paint = new RadialGradientPaint(center, radius, dist, colors);
g2.setPaint(paint);
shape = new RoundRectangle2D.Double(0, 0, width, height, height, height);
g2.fill(shape);
Font defaultFont = getFont();
g2.setFont(defaultFont);
g2.setColor(Color.BLACK);
Rectangle2D rect = defaultFont.getStringBounds(text, g2.getFontRenderContext());
LineMetrics lineMetrics = defaultFont.getLineMetrics(text, g2.getFontRenderContext());
g2.drawString(text,
(float)(width / 2 - rect.getWidth() / 2),
(float)((height / 2) + ((lineMetrics.getAscent() + lineMetrics.getDescent()) / 2 - lineMetrics.getDescent())));
}
示例10: HoseIcon
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
private JLabel HoseIcon( final WaterTowerModule module ) {
final int width = 60;
final int height = 14;
PNode node = new PNode() {{
final PhetPPath hosePart = new PhetPPath( new RoundRectangle2D.Double( 0, 0, width, height, 10, 10 ), Color.green, new BasicStroke( 1 ), Color.darkGray ) {{
//workaround the "edges get cut off in toImage" problem
setBounds( -1, -1, width + 2, height + 2 );
}};
addChild( hosePart );
addChild( new PImage( BufferedImageUtils.multiScaleToHeight( getRotatedImage( Images.NOZZLE, Math.PI / 2 ), (int) ( hosePart.getFullBounds().getHeight() + 4 ) ) ) {{
setOffset( hosePart.getFullBounds().getMaxX() - getFullBounds().getWidth() + 15, hosePart.getFullBounds().getCenterY() - getFullBounds().getHeight() / 2 );
}} );
}};
final ImageIcon imageIcon = new ImageIcon( node.toImage() );
//restore
// module.model.hose.enabled.set( enabled );
return new JLabel( imageIcon ) {{
addMouseListener( new MouseAdapter() {
@Override public void mousePressed( final MouseEvent e ) {
SimSharingManager.sendUserMessage( hoseCheckBoxIcon, icon, pressed, parameterSet( isSelected, !module.model.hose.enabled.get() ) );
module.model.hose.enabled.toggle();
}
} );
}};
}
示例11: TipNode
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
public TipNode() {
super();
// rounded corners at top
Shape roundRect = new RoundRectangle2D.Float( 0f, 0f, 1f, 1.5f, 0.4f, 0.4f );
// mask out rounded corners at bottom
Shape rect = new Rectangle2D.Float( 0f, 0.5f, 1f, 1f );
// point at the bottom
GeneralPath triangle = new GeneralPath();
triangle.moveTo( 0f, 1.5f );
triangle.lineTo( 0.5f, 2.5f );
triangle.lineTo( 1f, 1.5f );
triangle.closePath();
// constructive area geometry
Area area = new Area( roundRect );
area.add( new Area( rect ) );
area.add( new Area( triangle ) );
setPathTo( area );
setPaint( TIP_COLOR );
setStroke( null );
}
示例12: paintIcon
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
@Override
public void paintIcon(Component c, Graphics g, int x, int y) {
if (myColor.getAlpha() != 0xff) {
final RoundRectangle2D.Double clip =
new RoundRectangle2D.Double(x, y, myCellSize, myCellSize, ARC_SIZE, ARC_SIZE);
GraphicsUtil.paintCheckeredBackground(g, clip);
}
g.setColor(myColor);
g.fillRoundRect(x, y, myCellSize, myCellSize, ARC_SIZE, ARC_SIZE);
myColor.getRGBComponents(myRgbaArray);
if (Math.pow(1.0 - myRgbaArray[0], 2) + Math.pow(1.0 - myRgbaArray[1], 2) + Math.pow(1.0 - myRgbaArray[2], 2) < THRESHOLD_SQUARED_DISTANCE) {
// Drawing a border to avoid displaying white boxes on a white background
g.setColor(Gray._239);
g.drawRoundRect(x, y, myCellSize, myCellSize - 1, ARC_SIZE, ARC_SIZE);
}
}
示例13: fillShape
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
private void fillShape(final SWTGraphics2D g2) {
final double lineWidth = g2.getTransformedLineWidth();
if (shape instanceof Rectangle2D) {
g2.fillRect(shapePts[0] + lineWidth / 2, shapePts[1] + lineWidth / 2, shapePts[2] - lineWidth, shapePts[3]
- lineWidth);
}
else if (shape instanceof Ellipse2D) {
g2.fillOval(shapePts[0] + lineWidth / 2, shapePts[1] + lineWidth / 2, shapePts[2] - lineWidth, shapePts[3]
- lineWidth);
}
else if (shape instanceof Arc2D) {
g2.fillArc(shapePts[0] + lineWidth / 2, shapePts[1] + lineWidth / 2, shapePts[2] - lineWidth, shapePts[3]
- lineWidth, shapePts[4], shapePts[5]);
}
else if (shape instanceof RoundRectangle2D) {
g2.fillRoundRect(shapePts[0] + lineWidth / 2, shapePts[1] + lineWidth / 2, shapePts[2] - lineWidth,
shapePts[3] - lineWidth, shapePts[4], shapePts[5]);
}
else {
g2.fill(shape);
}
}
示例14: EnergyLegend
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
public EnergyLegend( final Property<Boolean> visible ) {
addChild( new PText( "Kinetic Energy" ) {{
setTextPaint( PhetColorScheme.KINETIC_ENERGY );
setFont( new PhetFont( 20, true ) );
}} );
addChild( new PText( "Potential Energy" ) {{
setTextPaint( PhetColorScheme.POTENTIAL_ENERGY );
setFont( new PhetFont( 20, true ) );
setOffset( 0, EnergyLegend.this.getFullBounds().getHeight() );
}} );
addChild( new PText( "Thermal Energy" ) {{
setTextPaint( PhetColorScheme.HEAT_THERMAL_ENERGY );
setFont( new PhetFont( 20, true ) );
setOffset( 0, EnergyLegend.this.getFullBounds().getHeight() );
}} );
visible.addObserver( new SimpleObserver() {
public void update() {
setVisible( visible.get() );
}
} );
double inset = 4;
final PhetPPath child = new PhetPPath( new RoundRectangle2D.Double( -inset, -inset, getFullBounds().getWidth() + inset * 2, getFullBounds().getHeight() + inset * 2, 10, 10 ), Color.white, new BasicStroke( 1 ), Color.darkGray );
addChild( child );
child.moveToBack();
}
示例15: updateLayout
import java.awt.geom.RoundRectangle2D; //导入依赖的package包/类
/**
* Update the layout of this node.
*
* @param topRectWidth - Width of the rectangular readout portion of this node.
* @param topRectHeight - Height of the rectangular readout portion of this node.
* @param topOfGraphPosY - Y position of the top of the graph. The readout sits above this and the
* tail is below.
* @param bottomOfGraphPosY - Y position of the bottom of the graph, which will also be the bottom
* of the tail.
*/
public void updateLayout( int topRectWidth, int topRectHeight, int topOfGraphPosY, int bottomOfGraphPosY ) {
// Size the readout rectangle, but don't position it yet.
_readoutRect.setPathTo( new RoundRectangle2D.Double( 0, 0, topRectWidth, topRectHeight, 10, 10 ) );
// Resize and position the readout text.
updateReadoutText();
updateReadoutTextLayout();
// Set the position of the readout rectangle.
// TODO: Need to work out how to do initial horizontal positioning.
_readoutRect.setOffset( 200, _chart._usableAreaRect.getX() );
// Set the size and position of the indicator line.
_indicatorLine.setPathTo( new Line2D.Double( 0, 0, 0, bottomOfGraphPosY - topOfGraphPosY ) );
_indicatorLine.setOffset( _readoutRect.getOffset().getX() + _readoutRect.getWidth() / 2,
_readoutRect.getOffset().getY() + _readoutRect.getHeight() );
// Set the position of the handle.
_indicatorHandle.setOffset(
_readoutRect.getOffset().getX() + _readoutRect.getWidth() / 2 - _indicatorHandle.getWidth() / 2,
_readoutRect.getFullBoundsReference().getMaxY() + ( 0.5 * _indicatorHandle.getFullBoundsReference().getHeight() ) );
}