java fillrect,如何使用g.fillRect方法在Java中创建Rectangle对象

I need to create a rectangle object and then paint it to the applet using paint(). I tried

Rectangle r = new Rectangle(arg,arg1,arg2,arg3);

Then tried to paint it to the applet using

g.draw(r);

It didn't work. Is there a way to do this in java? I have scoured google to within an inch of its life for an answer, but I haven't been able to find an answer. Please help!

解决方案

Try this:

public void paint (Graphics g) {

Rectangle r = new Rectangle(xPos,yPos,width,height);

g.fillRect(r.getX(), r.getY(), r.getWidth(), r.getHeight());

}

[edit]

// With explicit casting

public void paint (Graphics g) {

Rectangle r = new Rectangle(xPos, yPos, width, height);

g.fillRect(

(int)r.getX(),

(int)r.getY(),

(int)r.getWidth(),

(int)r.getHeight()

);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
是的,Java Swing的滚动条可以使用自定义的标签来替代默认的滚动条。你使用JScrollBar类的setUI()方法来设置自定义的UI。 下面是一个简单的例子,演示如何使用自定义的图片标签来替默认的垂直滚动条: ```java import java.awt.*; import javax.swing.*; public class CustomScrollBarExample extends JFrame { public CustomScrollBarExample() { super("Custom Scroll Bar Example"); setSize(300, 200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JPanel panel = new JPanel(); panel.setPreferredSize(new Dimension(200, 200)); panel.setLayout(new BorderLayout()); // 创建一个自定义的滚动条UI CustomScrollBarUI customScrollBarUI = new CustomScrollBarUI(); JScrollBar scrollBar = new JScrollBar(JScrollBar.VERTICAL); scrollBar.setUI(customScrollBarUI); panel.add(scrollBar, BorderLayout.EAST); getContentPane().add(panel); } public static void main(String[] args) { CustomScrollBarExample example = new CustomScrollBarExample(); example.setVisible(true); } } // 自定义的滚动条UI class CustomScrollBarUI extends BasicScrollBarUI { // 滚动条的宽度 private static final int SCROLLBAR_WIDTH = 20; // 滚动条的高度 private static final int SCROLLBAR_HEIGHT = 200; // 滚动条的背景颜色 private static final Color SCROLLBAR_BACKGROUND = new Color(255, 255, 255); // 滑块的图片 private static final ImageIcon THUMB_IMAGE = new ImageIcon("thumb.png"); // 增加按钮的图片 private static final ImageIcon INCREASE_BUTTON_IMAGE = new ImageIcon("increase.png"); // 减少按钮的图片 private static final ImageIcon DECREASE_BUTTON_IMAGE = new ImageIcon("decrease.png"); @Override protected void paintTrack(Graphics g, JComponent c, Rectangle trackBounds) { g.setColor(SCROLLBAR_BACKGROUND); g.fillRect(trackBounds.x, trackBounds.y, trackBounds.width, trackBounds.height); } @Override protected void paintThumb(Graphics g, JComponent c, Rectangle thumbBounds) { THUMB_IMAGE.paintIcon(c, g, thumbBounds.x, thumbBounds.y); } @Override protected void paintDecreaseHighlight(Graphics g) { DECREASE_BUTTON_IMAGE.paintIcon(scrollbar, g, decreaseRect.x, decreaseRect.y); } @Override protected void paintIncreaseHighlight(Graphics g) { INCREASE_BUTTON_IMAGE.paintIcon(scrollbar, g, increaseRect.x, increaseRect.y); } @Override protected JButton createDecreaseButton(int orientation) { return new JButton(DECREASE_BUTTON_IMAGE); } @Override protected JButton createIncreaseButton(int orientation) { return new JButton(INCREASE_BUTTON_IMAGE); } @Override protected Dimension getMinimumThumbSize() { return new Dimension(THUMB_IMAGE.getIconWidth(), THUMB_IMAGE.getIconHeight()); } @Override protected Dimension getPreferredSize(JComponent c) { if (scrollbar.getOrientation() == JScrollBar.VERTICAL) { return new Dimension(SCROLLBAR_WIDTH, SCROLLBAR_HEIGHT); } else { return new Dimension(SCROLLBAR_HEIGHT, SCROLLBAR_WIDTH); } } } ``` 在上面的例子,我们创建了一个CustomScrollBarUI类来实现自定义的滚动条UI。在这个类,我们重写了几个方法来实现自定义的滚动条: - paintTrack()方法用来绘制滚动条的背景颜色。 - paintThumb()方法用来绘制滑块的图片。 - paintDecreaseHighlight()和paintIncreaseHighlight()方法用来绘制减少和增加按钮的图片。 - createDecreaseButton()和createIncreaseButton()方法用来创建减少和增加按钮。 - getMinimumThumbSize()方法用来设置滑块的最小大小。 - getPreferredSize()方法用来设置滚动条的首选大小。 在界面,我们创建了一个JPanel,并将自定义的垂直滚动条添加到了它的东侧。最后,我们将这个面板添加到了JFrame,并显示出来。 注意,上述代码使用的图片必须存在于指定的路径。如果你想使用自己的图片,请将图片文件放在正确的路径下,并在代码修改图片文件的名称和路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值