2008-02-12, 15:04
  #1
Medlem
Tjena.
Varfr jag inte kan skapa ett nytt objekt efter timern?

OM jag skapar ett objekt (ny internalframe) efter timern, hoppar programmet ver timern och den nya internal frame verlappar den gamla bara efter en sekunds frdrjning.


vore grymt snllt om nn kunde svara p det. Ber ocks om urskt fr min kod. Den ser ut som fan. ven fr en nybrjare:P


Om ni ser ngot stort misstag i koden fr ni grna peka p det:P

KOD:

Mvh
Citera
2008-02-12, 15:41
  #2
Medlem
Tooners avatar
Hmm, timern i Swing-biblioteket r vl till fr att gra ngot med jmna mellanrum.

Det du gr hr:

Kod:
javax.swing.Timer timer = new javax.swing.Timer(8000, new ActionListener() {
    public 
void actionPerformed(ActionEvent e){
        
words.dispose();
    }
});
timer.start(); 

r ju att stta igng en timer som var ttonde sekund tar bort din JInternalFrame words.

Den vntar allts inte som du kanske frskte f den att gra. Utan det du gr direkt efter timer.start() kommer att utfras direkt, och efter tta sekunder frsvinner 'words'. Om du efter det visar 'words' igen kommer den terigen efter tta sekunder tas bort av din timer.

Att f det att fungera som du vill (som jag tror att du vill iallafall) skulle kanske vara Thread.sleep(8000) istllet. D vntar hela programmet i tta sekunder innan det fortstter. (r ju inte den optimala lsningen direkt, bttre att skapa en egen trd som hanterar det)
Citera
2008-02-12, 15:45
  #3
Medlem
Tooners avatar
Vad jag menar var vl ungefr det hr:

Kod:
// 'words' r skapad och visas och nu vntar programmet i tta sekunder
try {
    
Thread.sleep(8000);
} catch (
InterruptedException e) {
    
e.printStackTrace();
}
// Programmet har vntat klart och tar bort 'words'
words.dispose();
        
// Fortstt med det du tnkt 
Inte s smidig lsning direkt, men du frstr kanske pongen.
Citera
2008-02-16, 10:09
  #4
Medlem
Tack Fungerade fint fint.. har ett annat litet problem om du har lust att kolla p vad jag har gjort fr fel p fljande kod:

Kod:
JInternalFrame frame3 = new JInternalFrame('moment2');
       
frame3.setLayout(new BorderLayout());
        
frame3.setSize(1275,770);
       
frame3.setVisibletrue );
     
JLabel instruction= new JLabel();
     
instruction.setText('                                  Vad gr mannen p bilden?             ');
     
instruction.setFont(new Font('SansSerif',Font.BOLD,40));
     
instruction.setVerticalAlignment(JLabel.CENTER);

     
ImageIcon picture=new ImageIcon('king.jpg');
     
JLabel picholder= new JLabel(picture);
     
picholder.setSize(300,400);
     
picholder.setLocation(100,200);

     
JButton choice1= new JButton('HAN HLLER ETT TAL');
     
choice1.setSize(new java.awt.Dimension(50,50));
     
JButton choice2= new JButton('HAN PEKAR P NGOT');
     
choice2.setSize(new java.awt.Dimension(50,50));
     
JButton choice3=new JButton('HAN STRCKER SIG EFTER NGOT');
     
choice3.setSize(new java.awt.Dimension(100,100));
     
JPanel buttons;
     
buttons= new JPanel();
     
buttons.setPreferredSize(new Dimension(200,300));
     
buttons.add(choice1);
     
buttons.add(choice2);
     
buttons.add(choice3);
     
frame3.add(buttons,'South');
     
frame3.add(picholderBorderLayout.CENTER);
 
     
frame3.getContentPane().add(instructionBorderLayout.PAGE_START);
       
frame.add(frame3);

     
//public class shutdown implements ActionListener {
        
     //        choice1.addActionListener(this);
        // }
        // public void actionPerformed(ActionEvent e) {
        //     frame3.dispose();
        // }
     //}
 
 
 
 
 
 
}


Mvh
Citera
2008-02-16, 13:20
  #5
Medlem
Tooners avatar
Ja det frst jag ser r att du har anvnt enkla citationstecken verallt... allts ' istllet fr " .

S den dr koden kommer nog inte fungera s bra.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in