On Solaris using java 8, swing JButton does not render correctly
I have connected to Solaris 11.0 from a Windows machine I have set display as my machine I'm using java 8
Note: this works well when using java 6
When I launch the dialog, its buttons and other swing components will not be rendered
Observe its role o Windows 7 Enterprise o Windows Server 2012 enterprise
I tried to replace L & F, but it didn't work When I use "gtklookandfeel", the button appears but there is no text / label
Any help is greatly appreciated If you need any details, please let me know thank you.
The code of my dialog box is as follows
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,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
}
Solution
Try this
Let me know if it works
The above is collected and sorted out by the programming house for you. On Solaris using java 8, swing JButton cannot correctly present all the contents. I hope this article can help you solve the program development problem that swing JButton cannot correctly present on Solaris using java 8.
If you think the content of the programming home website is good, you are welcome to recommend the programming home website to programmers and friends.
