काम नहीं कर रहा है मैंने कभी भी Timer
एस के साथ काम नहीं किया है, इसलिए मेरी समस्या शायद वास्तव में बेवकूफ है। मेरा प्रोग्राम एक सर्कल खींचता है जो लाल होता है और यादृच्छिक सेकंड के बाद सर्कल को अपना रंग हरे रंग में बदलना चाहिए। मैंने बस एक स्विंग टाइमर बनाया है जैसा कि आप कोड में नीचे देख सकते हैं। और यह actionPerformed()
विधि में प्रवेश करता है लेकिन यह रंग नहीं बदलता है। क्या आप मेरी मदद किसी भी तरह बदलते रंगों के साथ मेरी समस्या को ठीक करने में मदद कर सकते हैं?स्विंग टाइमर के अंदर चित्रकारी
मेरे कोड:
package igrica;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;
public class ChangingCircle implements ActionListener{
JFrame frame;
Timer timer;
Random r;
public static void main(String[] args) {
ChangingCircle gui = new ChangingCircle();
gui.go();
}
public void go() {
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MyPanel panel = new MyPanel();
frame.getContentPane().add(BorderLayout.CENTER, panel);
frame.setSize(300, 300);
frame.setVisible(true);
}
public void actionPerformed(ActionEvent event) {
frame.repaint();
}
class MyPanel extends JPanel {
public void paintComponent(Graphics g) {
g.setColor(Color.red);
g.fillOval(100, 100, 100, 100);
Random r = new Random();
Timer timer = new Timer(r.nextInt(5000) + 1000, new ActionListener() {
public void actionPerformed(ActionEvent ev) {
System.out.println("Timer out");
g.setColor(Color.green);
g.fillOval(100, 100, 100, 100);
}
});
timer.start();
}
}
}
अंग्रेजी युक्ति: "वाक्य" के साथ हर वाक्य शुरू न करें, आप एक कहानी नहीं कह रहे हैं। – user1803551
मुझे पता है कि मुझे नहीं करना चाहिए, लेकिन मुझे नहीं पता कि कौन सा शब्द वाक्य शुरू करता है। xD –
बस "तो" को हटा दें और वाक्य ठीक है जैसा कि है। – user1803551