The Shed is going Social! Join us on FaceBook and Twitter and chime in on the conversation.
|
 |
|
Dev Shed Forums
> Programming Languages
> Java Help
|
Homework - Can't call "paint" method from other method
Discuss Can't call "paint" method from other method in the Java Help forum on Dev Shed. Can't call "paint" method from other method Java Help forum discussing all Java platforms - J2ME, J2SE and J2EE - as well as relevant standards, APIs and frameworks such as Swing, Servlets, JSPs, Applets, Struts, Spring, Hibernate, ANT, EJB, and other Java-related topics.
|
|
 |
|
|
|
|

Dev Shed Forums Sponsor:
|
|
|

November 17th, 2012, 06:17 AM
|
|
Registered User
|
|
Join Date: Nov 2012
Posts: 3
Time spent in forums: 1 h 2 m 25 sec
Reputation Power: 0
|
|
|
Homework - Can't call "paint" method from other method
I want to call "paint method" from other method.
It want to "Graphics g" parameter
Codes are below.The problem is in "actionPerformed method".I specified with "?" sign.
Waiting for help in an emergency. Thank you in advance...
----------------------------------------------
import java.awt.Graphics;
public interface GrafikCiz {
public void paint(Graphics g);
}
---------------------------------
import java.awt.Graphics;
public class Grafik {
public GrafikCiz grafikciz;
public Grafik(GrafikCiz grafikciz) {
this.grafikciz = grafikciz;
}
}
public void paint(Graphics g) {
grafikciz.paint(g);
}
----------------------------------------------------------------------
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;
public class Sinus extends Applet implements GrafikCiz {
@Override
public void paint(Graphics g) {
final int CYCLE = 4;
final int MAX = 1000;
int x1 = 0;
int x2 = 0;
g.setColor(Color.red);// color for axes
g.drawLine(0, 150, 700, 150);// x-axis
g.drawLine(240, 0, 240, 500);// y-axis
g.drawString("X-Axis", 430, 140);// Label for x-axis
g.drawString("Y-Axis", 200, 270);// Label for y-axis
g.setColor(Color.blue);// color for the sin curve
for (int i = -130; i <= 368; i++) {
x1 = (int) (100 * Math.sin(((i) * 2 * Math.PI * CYCLE) / (MAX)));
x2 = (int) (100 * Math.sin(((i + 1) * 2 * Math.PI * CYCLE) / (MAX)));
g.drawLine(i + 121, x1 + 138, (i + 1) + 121, x2 + 138);
}
}
}
------------------------------------------------------------------------------------
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Graphics;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
class ButtonPanel extends JPanel implements ActionListener {
private JButton sin;
private JButton cos;
private JButton tan;
private JFrame frame;
private JPanel p;
public ButtonPanel() {
sin = new JButton("Sinus");
cos = new JButton("Cosinus");
tan = new JButton("Tanjant");
frame = new JFrame("Fonksiyonları Grafigi");
p = new JPanel();
sin.setVisible(true);
cos.setVisible(true);
tan.setVisible(true);
frame.setVisible(true);
p.setVisible(true);
sin.setSize(50, 30);
cos.setSize(50, 30);
tan.setSize(50, 30);
frame.setSize(300, 200);
frame.add(p);
p.add(sin);
p.add(cos);
p.add(tan);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
sin.addActionListener((ActionListener) this);
cos.addActionListener((ActionListener) this);
tan.addActionListener((ActionListener) this);
}
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if (source == sin) {
Grafik grafik=new Grafik(new Sinus());
------???????? grafik.paint()//I want to call "paint method"
} else if (source == cos) {
Grafik grafik=new Grafik(new Cosinus());
}
else if (source == tan) {
Grafik grafik=new Grafik(new Tanjant());
}
}
}
public class Client extends javax.swing.JFrame {
public static void main(String[] args) {
ButtonPanel c = new ButtonPanel();
}
}
|

November 17th, 2012, 09:31 AM
|
 |
Java Junkie
|
|
Join Date: Jan 2004
Location: Mobile, Alabama
|
|
|
You don't call paint yourself. You ask the applet to call it by calling repaint()
|

November 17th, 2012, 09:35 AM
|
|
Registered User
|
|
Join Date: Nov 2012
Posts: 3
Time spent in forums: 1 h 2 m 25 sec
Reputation Power: 0
|
|
Quote: | Originally Posted by bullet You don't call paint yourself. You ask the applet to call it by calling repaint() |
I try to repaint() but was not. Did you explain how use repaint() from code
|

November 17th, 2012, 01:53 PM
|
 |
Contributing User
|
|
Join Date: Aug 2010
Location: Eastern Florida
|
|
Quote: | I try to repaint() but was not |
Can you post the code that shows how you called repaint()?
The repaint method tells the java program to call the paint() method some time in the near future. Calling repaint() is the normal way to have the paint() method called.
Please edit your post and wrap the code in code tags.
|

November 17th, 2012, 03:46 PM
|
|
Registered User
|
|
Join Date: Nov 2012
Posts: 3
Time spent in forums: 1 h 2 m 25 sec
Reputation Power: 0
|
|
Quote: | Originally Posted by NormR Can you post the code that shows how you called repaint()?
The repaint method tells the java program to call the paint() method some time in the near future. Calling repaint() is the normal way to have the paint() method called.
Please edit your post and wrap the code in code tags. |
I want to run "paint method" when I pressed "sinus button"
But I can't call the "paint method" because.It wants the parameter(Graphics g).What I should write the parameter while I call the "paint method".
|

November 17th, 2012, 03:49 PM
|
 |
Contributing User
|
|
Join Date: Aug 2010
Location: Eastern Florida
|
|
|
Call the repaint() method. Java will then call the paint() method with the correct Graphics object. You can't call the paint() method directly with the correct Graphics object.
Please edit your post and wrap the code in code tags.
|
Developer Shed Advertisers and Affiliates
| Thread Tools |
Search this Thread |
|
|
|
| Display Modes |
Rate This Thread |
Linear Mode
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
|
|