2015-08-04 11 views
7

Mi sono collegato a Solaris 11 dal mio computer Windows. Ho impostato DISPLAY sulla mia macchina. E sto utilizzando Java 8.Swing JButton non viene visualizzato correttamente su Solaris con Java 8

Nota: Questo ha funzionato bene quando si utilizza Java 6.

Quando sto dialogo lanciando poi il suo bottone e altri componenti a battente non sono sempre resi.

osservato che funziona su o Windows 7 Enterprise o di Windows Server 2012 Enterprise

Ho provato a cambiare la L & F, ma che non ha funzionato. Quando ho usato "GTKLookAndFeel", i pulsanti apparivano ma senza testo/etichetta.

Qualsiasi aiuto è molto apprezzato. Gentilmente fammi sapere se è necessaria qualche elaborazione. Grazie.

Codice per la mia finestra è la seguente

package com.ui; 


import javax.swing.SwingUtilities; 


public class SimpleDialog extends java.awt.Dialog { 
    private static final long serialVersionUID = -8298472889742780386L; 
    public SimpleDialog(java.awt.Frame parent, boolean modal) { 
     super(parent, modal); 
     initComponents(); 
    } 

    /** This method is called from within the constructor to 
    * initialize the form. 
    * WARNING: Do NOT modify this code. The content of this method is 
    * always regenerated by the Form Editor. 
    */ 
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents 
    private void initComponents() { 

     btnSkip = new javax.swing.JButton(); 
     btnRetry = new javax.swing.JButton(); 
     btnAbort = new javax.swing.JButton(); 
     jScrollPane1 = new javax.swing.JScrollPane(); 
     lblMessage = new javax.swing.JTextArea(); 
     btnViewLog = new javax.swing.JButton(); 

     setLocationRelativeTo(null); 
     setMinimumSize(new java.awt.Dimension(600, 200)); 
     setModalityType(java.awt.Dialog.ModalityType.APPLICATION_MODAL); 
     setName("Form"); // NOI18N 
     setResizable(false); 
     setTitle("Simple Dialog"); 
     addWindowListener(new java.awt.event.WindowAdapter() { 
      public void windowClosing(java.awt.event.WindowEvent evt) { 
       closeDialog(evt); 
      } 
     }); 

     btnSkip.setText("Skip this Step"); // NOI18N 
     btnSkip.setName("btnSkip"); // NOI18N 
     btnSkip.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       btnSkip_Click(evt); 
      } 
     }); 

     btnRetry.setText("Retry"); // NOI18N 
     btnRetry.setName("btnRetry"); // NOI18N 
     btnRetry.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       btnRetry_Click(evt); 
      } 
     }); 

     btnAbort.setText("Abort"); // NOI18N 
     btnAbort.setName("btnAbort"); // NOI18N 
     btnAbort.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       btnAbort_Click(evt); 
      } 
     }); 

     jScrollPane1.setName("jScrollPane1"); // NOI18N 

     lblMessage.setColumns(20); 
     lblMessage.setEditable(false); // NOI18N 
     lblMessage.setLineWrap(true); 
     lblMessage.setRows(5); 
     lblMessage.setName("lblMessage"); // NOI18N 
     jScrollPane1.setViewportView(lblMessage); 

     btnViewLog.setText("View log"); // NOI18N 
     btnViewLog.setName("btnViewLog"); // NOI18N 
     btnViewLog.addActionListener(new java.awt.event.ActionListener() { 
      public void actionPerformed(java.awt.event.ActionEvent evt) { 
       // open some log file 
      } 
     }); 

     javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); 
     this.setLayout(layout); 
     layout.setHorizontalGroup(
       layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
         .addContainerGap() 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) 
           .addComponent(jScrollPane1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 580, Short.MAX_VALUE) 
           .addGroup(layout.createSequentialGroup() 
             .addComponent(btnSkip) 
             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) 
             .addComponent(btnRetry) 
             .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 87, Short.MAX_VALUE) 
             .addComponent(btnViewLog) 
             .addGap(79, 79, 79) 
             .addComponent(btnAbort))) 
             .addContainerGap()) 
       ); 
     layout.setVerticalGroup(
       layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) 
       .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() 
         .addContainerGap() 
         .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 149, Short.MAX_VALUE) 
         .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) 
         .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) 
           .addComponent(btnSkip) 
           .addComponent(btnAbort) 
           .addComponent(btnRetry) 
           .addComponent(btnViewLog)) 
           .addContainerGap()) 
       ); 

     pack(); 
    }// </editor-fold>//GEN-END:initComponents 

    /** Closes the dialog */ 
    private void closeDialog(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_closeDialog 
     setVisible(false); 
     dispose(); 
    }//GEN-LAST:event_closeDialog 

    private void btnAbort_Click(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnAbort_Click 
     this.setVisible(false); 
    }//GEN-LAST:event_btnAbort_Click 

    private void btnRetry_Click(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnRetry_Click 
     this.setVisible(false); 
    }//GEN-LAST:event_btnRetry_Click 

    private void btnSkip_Click(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btnSkip_Click 
     this.setVisible(false); 
    }//GEN-LAST:event_btnSkip_Click 

    public static void main(String args[]) { 
     SwingUtilities.invokeLater(new Runnable() { 
      public void run() { 

       SimpleDialog dialog = new SimpleDialog(new java.awt.Frame(), true); 
       dialog.addWindowListener(new java.awt.event.WindowAdapter() { 
        public void windowClosing(java.awt.event.WindowEvent e) { 
         System.exit(0); 
        } 
       }); 
       dialog.setVisible(true); 
      } 
     }); 
    } 


    // Variables declaration - do not modify//GEN-BEGIN:variables 
    private javax.swing.JButton btnAbort; 
    private javax.swing.JButton btnRetry; 
    private javax.swing.JButton btnSkip; 
    private javax.swing.JButton btnViewLog; 
    private javax.swing.JScrollPane jScrollPane1; 
    private javax.swing.JTextArea lblMessage; 
    // End of variables declaration//GEN-END:variables 

} 
+0

L'istanza Solaris [senza testa] (http://stackoverflow.com/a/7401312/230513)? – trashgod

+0

grazie a @trashgod per la tua risposta. Non sono sicuro se Solaris sia senza testa o no. Tuttavia, si ricorda che funziona correttamente quando mi collego tramite Windows Server 2012 e Windows 7. –

+0

Non è chiaro di quale macchina si stia parlando quando si specifica "Ho impostato DISPLAY sulla mia macchina". Dato che hai scritto che non hai idea se la macchina Solaris sia senza testa o no, presumo che tu non stia rendendo il pulsante di swing su Solaris ma (indirettamente) su qualcos'altro. Stai usando un server X11 sul tuo computer Windows? – jlliagre

risposta

0

Prova questa UIManager.setLookAndFeel (UIManager.getSystemLookAndFeelClassName());

Fammi sapere se funziona o no. :)

+0

Non ha funzionato. Ho già detto nella mia domanda che cambiare L & F non ha aiutato. A proposito, il problema era da qualche parte nell'usare i controlli Swing all'interno della finestra di dialogo AWT. Ho cambiato la finestra di dialogo Swing e ha funzionato. Grazie. –

Problemi correlati