package saccubus;
-import java.awt.Color;
import static javax.swing.WindowConstants.*;
+import java.awt.Color;
import java.awt.Dimension;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.GroupLayout;
+import javax.swing.GroupLayout.Alignment;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
+import javax.swing.JTabbedPane;
import javax.swing.JTextArea;
import javax.swing.SwingUtilities;
* @throws java.lang.Exception
*/
private void jbInit() {
- final JPanel basePanel = new JPanel();
+ final JTabbedPane tab = new JTabbedPane(JTabbedPane.BOTTOM);
- final JLabel imageLabel = new JLabel();
+ final JLabel lblImage = new JLabel();
final ImageIcon icon = new ImageIcon(saccubus.MainFrame_AboutBox.class.getResource("icon.png"));
- imageLabel.setIcon(icon);
+ lblImage.setIcon(icon);
- final JTextArea productField = createProductField();
- productField.setOpaque(false);
- productField.setBorder(BorderFactory.createEmptyBorder());
- productField.setBackground(new Color(0, 0, 0, 0));
+ final JTextArea fldProduct = createProductField();
+ // Numbus bug 対応
+ // http://stackoverflow.com/questions/613603/java-nimbus-laf-with-transparent-text-fields
+ fldProduct.setOpaque(false);
+ fldProduct.setBorder(BorderFactory.createEmptyBorder());
+ fldProduct.setBackground(new Color(0, 0, 0, 0));
- final JScrollPane licensePane = createLicensePane();
+ final JScrollPane pnlLicense = createLicensePane();
okButton.setText("OK");
okButton.addActionListener(this);
- basePanel.setPreferredSize(new Dimension(500, 600));
- GroupLayout gl = new GroupLayout(basePanel);
- basePanel.setLayout(gl);
+ final JPanel pnlAbout = new JPanel();
+ GroupLayout glAbout = new GroupLayout(pnlAbout);
+ pnlAbout.setLayout(glAbout);
+
+ glAbout.setHorizontalGroup(glAbout.createParallelGroup(GroupLayout.Alignment.CENTER)
+ .addGroup(glAbout.createSequentialGroup()
+ .addGap(15).addComponent(lblImage).addGap(30).addComponent(fldProduct).addGap(30))
+ );
+
+ glAbout.setVerticalGroup(glAbout.createSequentialGroup()
+ .addGap(15)
+ .addGroup(glAbout.createParallelGroup()
+ .addComponent(lblImage).addComponent(fldProduct))
+ .addGap(15)
+ );
+
+ tab.add("About", pnlAbout);
+ tab.add("License", pnlLicense);
+
+ final JPanel pnlBase = new JPanel();
+ final GroupLayout glBase = new GroupLayout(pnlBase);
+ pnlBase.setLayout(glBase);
+ glBase.setAutoCreateContainerGaps(true);
+ glBase.setAutoCreateGaps(true);
+
+ glBase.setHorizontalGroup(glBase.createParallelGroup(Alignment.CENTER)
+ .addComponent(tab)
+ .addComponent(okButton)
+ );
- gl.setHorizontalGroup(gl.createParallelGroup(GroupLayout.Alignment.CENTER)
- .addGroup(gl.createSequentialGroup()
- .addGap(15).addComponent(imageLabel).addGap(30).addComponent(productField).addGap(30))
- .addComponent(licensePane)
- .addComponent(okButton));
+ glBase.setVerticalGroup(glBase.createSequentialGroup()
+ .addComponent(tab)
+ .addComponent(okButton)
+ );
- gl.setVerticalGroup(gl.createSequentialGroup()
- .addGap(15)
- .addGroup(gl.createParallelGroup()
- .addComponent(imageLabel).addComponent(productField))
- .addGap(15)
- .addComponent(licensePane)
- .addComponent(okButton));
- getContentPane().add(basePanel, null);
+ setContentPane(pnlBase);
setTitle("バージョン情報");
setResizable(true);
+ pack();
}
private JTextArea createProductField() {
licenseField.setCaretPosition(0);
licenseField.setEditable(false);
final JScrollPane licensePane = new JScrollPane(licenseField);
+ licensePane.setPreferredSize(new Dimension(400, 400));
return licensePane;
}