※ 引述《redhon ( redhon)》之銘言:
: 我做了一些修改
: : class CFrame extends JFrame implements ActionListener{
: : CFrame(){
: : 元件設定
: : }
: : public void paint(Graphics g){
: super.paint(g);
: : g.setColor(Color.red);
: : g.fillOval(200,50,70,200);
: : }
: : public void actionPerformed(ActionEvent e){
: g.setColor(Color.black);
: Graphics2D g2d=(Graphics2D)g;
: Stroke stroke=new BasicStroke(2.0f);
: g2d.setStroke(stroke);
: g.drawLine(170,500,170,501-4*Integer.parseInt(txtInput.getText()));
: : }
: : }
: 我希望觸動按鍵後所畫的線條不要將原本的矩形覆蓋掉
: 也就是紅色的矩形仍是完整的
其實 我不太懂 不蓋掉是什麼意思也… 你的線 跟 矩型不會有重疊的區塊?
不過 大致上 我看你的code 還是覺得有些問題
通常我在寫的時後 g 只會在paint 裡面出現
paint 是當視窗要重繪的時後(比方說你的視窗被其他視窗蓋掉以後,過一會兒
你將其他的視窗移開後,他要出現之前 系統就會呼叫paint來重畫他)
所以 paint方法,是系統來呼叫它的,當被呼叫的時後 就必須把所有該畫的東西
重新畫一次,你的code 應該會有 被蓋掉後從新畫不出來線的問題
另外 除了系統自動來呼叫paint以外 你也可以主動呼叫 this.repaint()來要求重畫
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 123.194.174.15
討論串 (同標題文章)