AboutDialog.java
package cern.accsoft.steering.jmad.gui.dialog;
import cern.accsoft.steering.jmad.gui.icons.Icon;
import javax.swing.ImageIcon;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.util.Objects;
/**
* Simple about box
*/
public class AboutDialog {
private static final Dimension PREFERRED_SIZE = new Dimension(700, 250);
private final JDialog dialog;
private final JPanel contentPane;
public AboutDialog(JFrame parentFrame) {
dialog = new JDialog(parentFrame);
dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
dialog.setPreferredSize(PREFERRED_SIZE);
contentPane = new JPanel(new BorderLayout(10, 10));
dialog.setContentPane(contentPane);
}
public void setIcon(ImageIcon imageIcon) {
Objects.requireNonNull(imageIcon);
dialog.setIconImage(imageIcon.getImage());
JLabel iconLabel = new JLabel();
iconLabel.setIcon(imageIcon);
iconLabel.setPreferredSize(new Dimension(imageIcon.getIconWidth(), imageIcon.getIconHeight()));
contentPane.add(iconLabel, BorderLayout.WEST);
}
public void setText(String title, String product, String extra) {
StringBuilder sb = new StringBuilder();
sb.append("<html>");
sb.append("<h1>" + title + "</h1>");
sb.append("<table cellSpacing=0 cellPadding=0 border=0>");
sb.append("<tr><td><b>Product: </b></td><td>" + product + "</td></tr>");
sb.append("</table><br>");
sb.append(extra + "<br>");
sb.append("</html>");
JPanel box = new JPanel();
box.add(new JLabel(sb.toString()));
contentPane.add(box, BorderLayout.CENTER);
}
public void show() {
dialog.pack();
dialog.setVisible(true);
}
}