Path: csiph.com!usenet.pasdenom.info!weretis.net!feeder4.news.weretis.net!eternal-september.org!feeder.eternal-september.org!mx04.eternal-september.org!.POSTED!not-for-mail From: Knute Johnson Newsgroups: comp.lang.java.programmer Subject: Re: Question on homework.... Date: Sun, 18 Nov 2012 16:38:32 -0800 Organization: A noiseless patient Spider Lines: 67 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Mon, 19 Nov 2012 00:38:34 +0000 (UTC) Injection-Info: mx04.eternal-september.org; posting-host="9b3fcb0d22708969e4dc99e7aa0ef1f9"; logging-data="19710"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/x8fdaJJTNnsugdQQpxD6z" User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:16.0) Gecko/20121026 Thunderbird/16.0.2 In-Reply-To: Cancel-Lock: sha1:73Z14hcu0sEFlM3qWPSDYpQv/Gs= Xref: csiph.com comp.lang.java.programmer:19798 On 11/18/2012 3:45 PM, simple wrote: > Working on this homework - need to have java when launched the > program show the main intro window (which it does show me) and then I > need to show the welcome page but don't know how to make this appear > right after. The last step is it has to show me the rules windows > but not sure how I tell the system the user wants to see the rules. > > When I run the batch file the intro window appears for a few seconds > but not the other window why is it not picking up???? I don't > understand where it is getting the if type==1 ??? where is getting 1 > from??? Do I need to create menu to ask for type 1 or 2??? Would > really appreciate if someone can clarify why it is not working..... > > import javax.swing.*; import java.awt.*; import java.awt.event.*; > > > public class window extends JWindow { > > ImageIcon imIntro = new ImageIcon("images\\Lintro.jpg"); ImageIcon > imWelcome = new ImageIcon("images\\Welcome.jpg"); ImageIcon imRules = > new ImageIcon("images\\Rules.jpg"); static Thread t = new Thread(); > static int thread = 0; static JButton bouton; static int X; static > int Y; > > /* Parametres du constructeur : type: 1-> Intro, 2->rules */ > > public window( int X, int Y, int type ) { > > super(); Dimension dim = > Toolkit.getDefaultToolkit().getScreenSize(); setSize(X,Y); > setLocation( (dim.width - X)/2 , (dim.height - Y)/2); > setVisible(true); Container fen = getContentPane(); > > if (type == 1 ) bouton = new JButton(imIntro); else bouton > = new JButton(imRules); bouton.setPreferredSize(new Dimension(X, Y) > ); fen.add(bouton); bouton.setVisible(true); > > show(); > > if( type == 1 ) { //this is the part I don't know where is it getting > it try { t.sleep(2000); thread = 1; } catch( > java.lang.InterruptedException ex ) { > JOptionPane.showMessageDialog(null, "error"); } dispose(); > > } /* If it is the rules - close window when user cliques*/ > > else { bouton.addActionListener( new ActionListener() { public void > actionPerformed(ActionEvent e) { dispose(); } }); } > > } } > You've got a lot of problems with this code. You can't sleep in the constructor. All GUI construction needs to be done on the Event Dispatch Thread. show() has been deprecated for setVisible(true). You don't have any main() method (or you haven't shown us all the code). So it sounds like you have three windows you want to display. You should create three classes with the code that each of these windows needs to function. If you want a window to disappear after a period of time, use a javax.swing.Timer, that you start when the window is opened, to close that window and open the next one. If you are using a JButton, in the button's ActionListener, close the one window and open the next. -- Knute Johnson