📄 aboutdialog.java
字号:
/* Copyright (C) 2003 Adam Olsen This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */package com.valhalla.jbother;import java.awt.BorderLayout;import java.awt.Font;import java.awt.Frame;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.util.ResourceBundle;import javax.swing.BorderFactory;import javax.swing.Box;import javax.swing.BoxLayout;import javax.swing.JButton;import javax.swing.JDialog;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.JTextPane;import javax.swing.SwingConstants;import javax.swing.UIDefaults;import javax.swing.UIManager;import com.valhalla.gui.DialogTracker;import com.valhalla.gui.Standard;import com.valhalla.pluginmanager.PluginLoader;/** * This obiously displays an about dialog with the credits for JBother * * @author Adam Olsen * @version 1.0 */public class AboutDialog extends JDialog { private ResourceBundle resources = ResourceBundle .getBundle("JBotherBundle"); private JButton okButton = new JButton(resources.getString("okButton")); private JButton creditsButton = new JButton(resources .getString("creditsButton")); private JTextPane textPane = new JTextPane(); private JScrollPane scrollPane = new JScrollPane(textPane); private JPanel middlePanel = new JPanel(new BorderLayout()); private JPanel version; private JLabel imageLabel = new JLabel(Standard .getIcon("images/splashimage.png")); private JPanel buttonPanel = new JPanel(); private JPanel mainPanel; private JPanel container = new JPanel(new BorderLayout()); private boolean credits = false; private AboutDialog thisPointer = this; /** * Sets up the Visual components */ public AboutDialog() { super(BuddyList.getInstance().getContainerFrame(), "About JBother", false); setTitle(resources.getString("aboutDialogTitle")); mainPanel = (JPanel) getContentPane(); container.setLayout(new BorderLayout()); container.setBorder(BorderFactory.createEmptyBorder(0, 15, 15, 15)); mainPanel.setBorder(BorderFactory.createTitledBorder(resources .getString("aboutDialogTitle"))); buttonPanel.setLayout(new BoxLayout(buttonPanel, BoxLayout.X_AXIS)); buttonPanel.add(Box.createHorizontalGlue()); buttonPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); buttonPanel.add(okButton); buttonPanel.add(creditsButton); buttonPanel.add(Box.createHorizontalGlue()); createVersionPanel(); middlePanel.add(version, BorderLayout.NORTH); container.add(imageLabel, BorderLayout.NORTH); container.add(middlePanel, BorderLayout.CENTER); mainPanel.add(buttonPanel, BorderLayout.SOUTH); mainPanel.add(container, BorderLayout.CENTER); imageLabel.setBorder(BorderFactory.createEmptyBorder(5, 5, 10, 5)); textPane.setEditable(false); // load in the application credits InputStream file = getClass().getClassLoader().getResourceAsStream( "credits.txt"); InputStreamReader in = new InputStreamReader(file); BufferedReader reader = new BufferedReader(in); StringBuffer buffer = new StringBuffer(); String line; try { while ((line = reader.readLine()) != null) { buffer.append(line + "\n"); } file.close(); } catch (IOException e) { com.valhalla.Logger.debug("Couldn't fread credits file."); } textPane.setFont(new Font("Monospaced", Font.PLAIN, 12)); textPane.setText(buffer.toString()); textPane.setCaretPosition(0); final AboutDialog thisPointer = this; okButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { DialogTracker.removeDialog(thisPointer); } }); creditsButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { changeHandler(); } }); pack(); setLocationRelativeTo(null); setResizable(false); DialogTracker.addDialog(this, true, true); } /** * Toggles back and forth between showing the logo and version information * and showing the application credits */ private void changeHandler() { if (!credits) { mainPanel.remove(container); mainPanel.add(scrollPane); creditsButton.setText(resources.getString("info")); mainPanel.setBorder(BorderFactory.createTitledBorder(resources .getString("creditsButton"))); credits = true; } else { mainPanel.remove(scrollPane); mainPanel.add(container); creditsButton.setText(resources.getString("creditsButton")); mainPanel.setBorder(BorderFactory.createTitledBorder(resources .getString("aboutDialogTitle"))); credits = false; } buttonPanel.repaint(); mainPanel.repaint(); validate(); } /** * Creates a panel containing all of the Runtime version information */ private void createVersionPanel() { version = new JPanel(); ResourceBundle bundle = ResourceBundle.getBundle("buildid"); version.setLayout(new GridLayout(0, 2)); addItem(resources.getString("aboutJbotherVersion"), com.valhalla.jbother.JBother.JBOTHER_VERSION); addItem(resources.getString("aboutBildId"), bundle .getString("build.number")); addItem(resources.getString("aboutCreatedBy"), "Adam Olsen"); addItem(resources.getString("aboutPluginApiVersion"), PluginLoader .getAPIVersion() + ""); addItem(resources.getString("aboutSmackVersion"), org.jivesoftware.smack.SmackConfiguration.getVersion()); addItem(resources.getString("aboutHostOperatingSystem"), System .getProperty("os.name") + " " + System.getProperty("os.version")); addItem(resources.getString("aboutHostSystemArchitecture"), System .getProperty("os.arch")); addItem(resources.getString("aboutJavaVersion"), System .getProperty("java.version")); addItem(resources.getString("aboutJavaVendor"), System .getProperty("java.vendor")); } /** * Adds a text label and a value * * @param name * the label name * @param the * value */ private void addItem(String name, String value) { UIDefaults ui = UIManager.getDefaults(); Font newFont = (Font) ui.get("Label.font"); JLabel nameLabel = new JLabel(name + ": ", SwingConstants.RIGHT); nameLabel.setFont(new Font(newFont.getName(), Font.BOLD, newFont .getSize())); JLabel valueLabel = new JLabel(value); version.add(nameLabel); version.add(valueLabel); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -