2011-09-25 1 views
1

J'ai une mission de mon université pour continuer un projet de carte JAVA des étudiants du semestre dernier, qui se trouve être aspiré. Parce que nous devons continuer à travailler avec quelqu'un plutôt que le nôtre.Wrap Extended Frame Voir dans une fenêtre

Donc, ma première étape consiste à créer une icône d'image de fenêtre et une icône de barre d'outils pour la fenêtre de l'application. En réalité, ce code est basé sur FrameView étendu au lieu de JWindow.

Mon idée est d'envelopper le FrameView étendu dans une fenêtre.

Quelqu'un peut-il m'aider avec ça?

Merci beaucoup j'apprécierais cela.

CODE:

public class DesktopApplication1View extends FrameView implements IProgressDialogObserver 
{ 
    //============================================================ 
    // Fields 
    // =========================================================== 

    private Connection connection = new Connection(); 
    private ProgressDialogUpdater pbu = ProgressDialogUpdater.getInstance(); 
    private Vector<CourseFromCard> courseListFromCard = new Vector<CourseFromCard>(); 
    private Vector<School> schoolList = new Vector<School>(); 
    private Vector<CourseFromFile> courseList = new Vector<CourseFromFile>(); 
    private int cardReaderRefreshHelper = 0; 
    private Student student = null; 

    JLabel jLabelBilkaImage = null; 

    final String ICON = new File("").getAbsolutePath() + System.getProperty("file.separator") + "src" + System.getProperty("file.separator") + "resources" + System.getProperty("file.separator") + "image" + System.getProperty("file.separator") + "BilKa_Icon_32.png"; 

    final String PIC = new File("").getAbsolutePath() + System.getProperty("file.separator") + "src" + System.getProperty("file.separator") + "resources" + System.getProperty("file.separator") + "image" + System.getProperty("file.separator") + "BilKa_Icon_128.png"; 

    private JLabel getJLabelBilkaImage() { 
     if (jLabelBilkaImage == null) { 
      Icon image = new ImageIcon(PIC); 
      jLabelBilkaImage = new JLabel(image); 
      jLabelBilkaImage.setName("jLabelBilkaImage"); 
     } 
     return jLabelBilkaImage; 
    } 

    //============================================================ 
    // Constructors 
    // =========================================================== 

    public DesktopApplication1View(SingleFrameApplication app) 
    { 
     super(app); 
     pbu.registriere(this); 


     app.getMainFrame().setIconImage(Toolkit.getDefaultToolkit().getImage("icon.png")); 

     initComponents(); 
     refreshConnectionState(); 
     readFilesFromLocalHDD(); 
     ResourceMap resourceMap = getResourceMap(); 
     int messageTimeout = resourceMap.getInteger("StatusBar.messageTimeout"); 
     messageTimer = new Timer(messageTimeout, new ActionListener() 
     { 
      public void actionPerformed(ActionEvent e) 
      { 
       statusMessageLabel.setText(""); 
      } 
     }); 
     messageTimer.setRepeats(false); 
     int busyAnimationRate = resourceMap.getInteger("StatusBar.busyAnimationRate"); 
     for (int i = 0; i < busyIcons.length; i++) 
     { 
      busyIcons[i] = resourceMap.getIcon("StatusBar.busyIcons[" + i + "]"); 
     } 
     busyIconTimer = new Timer(busyAnimationRate, new ActionListener() 
     { 

      public void actionPerformed(ActionEvent e) 
      { 
       busyIconIndex = (busyIconIndex + 1) % busyIcons.length; 
       statusAnimationLabel.setIcon(busyIcons[busyIconIndex]); 
      } 
     }); 
     idleIcon = resourceMap.getIcon("StatusBar.idleIcon"); 
     statusAnimationLabel.setIcon(idleIcon); 
     progressBar.setVisible(false); 

     // connecting action tasks to status bar via TaskMonitor 
     TaskMonitor taskMonitor = new TaskMonitor(getApplication().getContext()); 
     taskMonitor.addPropertyChangeListener(new java.beans.PropertyChangeListener() 
     { 

      public void propertyChange(java.beans.PropertyChangeEvent evt) 
      { 
       String propertyName = evt.getPropertyName(); 
       if ("started".equals(propertyName)) 
       { 
        if (!busyIconTimer.isRunning()) 
        { 
         statusAnimationLabel.setIcon(busyIcons[0]); 
         busyIconIndex = 0; 
         busyIconTimer.start(); 
        } 
        progressBar.setVisible(true); 
        progressBar.setIndeterminate(true); 
       } 
       else if ("done".equals(propertyName)) 
       { 
        busyIconTimer.stop(); 
        statusAnimationLabel.setIcon(idleIcon); 
        progressBar.setVisible(false); 
        progressBar.setValue(0); 
       } 
       else if ("message".equals(propertyName)) 
       { 
        String text = (String) (evt.getNewValue()); 
        statusMessageLabel.setText((text == null) ? "" : text); 
        messageTimer.restart(); 
       } 
       else if ("progress".equals(propertyName)) 
       { 
        int value = (Integer) (evt.getNewValue()); 
        progressBar.setVisible(true); 
        progressBar.setIndeterminate(false); 
        progressBar.setValue(value); 
       } 
      } 
     }); 
    } 
......... 
+1

pourquoi? Appframework permet d'organiser l'application, d'apprendre à en tirer le meilleur parti et à être heureux :-) – kleopatra

Répondre

1

SingleFrameApplication fournit la méthode getMainFrame(), qui renvoie le DFrame utilisé pour afficher une vue particulière. Le code que vous avez indiqué dans votre question est l'un de ces points de vue. Si vous devez opérer sur le cadre, il est probablement préférable de le faire dans le sous-classement SingleFrameApplication du code que le code que vous avez posté.

Il existe un tutorial sur l'utilisation de Swing Application Framework, qui peut fournir plus d'aide.