Re: i'm still here ...
i'm not llloyd wood wrote:
... you can see where i'm going.
From this code, you seem to be going nowhere, slowly.
..the alarm will just blink.
if anyone wants to help, don't write code for me. explain.
This example starts with the same basic problem
your last attempt did. A new JFrame (and all
components, listeners etc.) is created for each
pass of the addToBox() method.
The user clicks on things in the (current) GUI,
but they immediately disappear behind the next
JFrame!
This can be seen in the included, slightly altered
source.
I suggest you go back and study the example posted
by Knute earlier. That is the basic way to go about
the GUI updates you seem to be having such trouble
with.
<sscce>
import java.text.*;
import java.text.DateFormat;
import java.awt.*;
import java.awt.event.*;
import java.awt.Font;
import java.awt.GridLayout;
//import java.awt.JPanel;
import java.util.*;
// import java.util.Color.*;
import java.util.Calendar;
import javax.swing.*;
abstract class BigFonts extends JComponent
implements MouseMotionListener, ActionListener {
int newx=125, newy=95;
String st = " Starting ...";
static int x = 0;
static int y = 0;
public void paintComponent(Graphics g){
g.drawString(st, newx, newy);
}
//make draggable
public void MouseDragged(MouseEvent e){
// int newx =0;newy = 0;
newx=e.getX();
newy=e.getY();
repaint();
}
public static String setAlarm(String theAlarm ,String theTime){
theAlarm = theTime+1;
return theAlarm;
}
public void alarm(String theAlarm ,String theTime){
if (theTime==theAlarm){}
// blink
}
public static String doTime(String ts){
String thetime;
Calendar calendar = Calendar.getInstance();
SimpleDateFormat tf = new SimpleDateFormat( "h:mm:ss a" ) ;
thetime = tf.format(calendar.getTime());
return thetime;
}
public static void addToBox(String thetime){
Font big = new Font("Serif", Font.BOLD, 50);
JButton thedisplay = new JButton(thetime);
thedisplay.setFont(big);
JFrame display = new JFrame("What time is it Dorsey? Huh, Punk");
int offset = 10;
display.setLocation(x++*offset, y++*offset);
display.setLayout(new GridLayout(3,2));
display.setBackground(Color.CYAN);
display.setSize(300,250);
display.setFont(big);
display.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
display.add(thedisplay);
JRadioButton ON = new JRadioButton("alarm on");
JRadioButton OFF = new JRadioButton("alarm off");
display.add(ON);
display.add(OFF);
display.setVisible(true);
}
public static void main(String[] args){
String theTime = " ";
String theAlarm = " ";
String st = " Starting ...";
Thread t = new Thread();
t.start();
try{
for (;;) { // forever
addToBox(doTime(st));
t.sleep(1000);
} // forever
}catch (Exception e){
//{ who cares?)
} // catch
}
}
</sscce>
--
Andrew Thompson
http://www.athompson.info/andrew/
Message posted via JavaKB.com
http://www.javakb.com/Uwe/Forums.aspx/java-setup/200705/1