是这样吗?不是的话问题重新表述下,呵呵。
10年积累的成都网站制作、网站建设经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有南岗免费网站建设让你可以放心的选择与我们合作。
其实主要就是使用repaint方法,他会重新执行paint方法,重新绘制一次
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Test2 {
private JPanel panel;
private boolean isDrawRect = false;// 是否绘制红色矩形,默认不绘制
public Test2() {
JFrame frame = new JFrame("Test");
frame.setVisible(true);// 显示
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();// 屏幕大小
frame.setBounds((d.width - 800) / 2, (d.height - 600) / 2, 800, 600);// 大小,定位
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 关闭方式
frame.setLayout(null);
JButton b1 = new JButton("绘制红色矩形");
b1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
isDrawRect = true;
panel.repaint();
}
});
b1.setBounds(2, 2, 150, 30);
JButton b2 = new JButton("绘制黑色矩形");
b2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
isDrawRect = false;
panel.repaint();
}
});
b2.setBounds(200, 2, 150, 30);
setPanel();
panel.setBounds(5, 50, 400, 450);
frame.add(b1);
frame.add(b2);
frame.add(panel);
frame.validate();
}
private void setPanel() {
panel = new JPanel() {
private static final long serialVersionUID = 1L;
@Override
public void paint(Graphics g) {
// TODO Auto-generated method stub
super.paint(g);
Graphics2D g2D = (Graphics2D)g;
if (isDrawRect) {
g2D.setColor(Color.RED);
} else {
g2D.setColor(Color.BLACK);
}
g2D.drawRect(100, 100, 200, 300);
g.dispose();
}
};
}
public static void main(String[] args) throws IOException {
new Test2();
}
}
drawRect
public void drawRect(int x,
int y,
int width,
int height)绘制指定矩形的边框。矩形的左边和右边位于 x 和 x + width。顶边和底边位于 y 和 y + height。使用图形上下文的当前颜色绘制该矩形。
参数:
x - 要绘制矩形的 x 坐标。
y - 要绘制矩形的 y 坐标。
width - 要绘制矩形的宽度。
height - 要绘制矩形的高度。
这个和下面的代码一样作用效果
for(int x=0;xarr.length;x++){
System.out.print(arr[x]+"");
}
num其实就是arr数组的对象了。
以后你学到集合如果对集合进行添加或者删除,就不能用你上面那样循环遍历操作集合,会报错。