📄 aboutdialog.java
字号:
package ranab.gui;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
* This is a generic class to show the about dialog.
*
* @author <a href="mailto:rana_b@yahoo.com">Rana Bhattacharyya</a>
*/
public
class AboutDialog extends JDialog
implements SwingConstants, ActionListener {
private String mstMessage;
private String mstButtonText;
private Icon mImgIcon;
private int miButtonAlignment;
private String mstTextAlignment;
private Font mFont;
private Color mBgColor;
private Color mFgColor;
private Component mParent;
/**
* Instantiate the about dialog box.
* @param parent parent frame of this dialog box.
* @param modal dialog box modal propery.
*/
public AboutDialog(Frame parent, boolean modal) {
super (parent, modal);
mParent = parent;
mstMessage = null;
mImgIcon = null;
mstButtonText = "Ok";
miButtonAlignment = FlowLayout.CENTER;
mstTextAlignment = BorderLayout.SOUTH;
mFont = null;
mBgColor = null;
mFgColor = null;
}
/**
* Set button alignment.
* Possible inputs are <code>FlowLayout.LEFT, FlowLayout.CENTER,
* FlowLayout.RIGHT</code>.
*/
public void setButtonAlignment(int align) {
if ( (align != FlowLayout.LEFT) ||
(align != FlowLayout.CENTER) ||
(align != FlowLayout.RIGHT) ) {
throw new IllegalArgumentException("Not a valid horizontal alignment");
}
miButtonAlignment = align;
}
/**
* Set text alignment.
* Possible inputs are <code>BorderLayout.NORTH,
* BorderLayout.SOUTH, BorderLayout.EAST, BorderLayout.WEST</code>.
*/
public void setTextAlignment(String align) {
if ( (!align.equals(BorderLayout.NORTH)) ||
(!align.equals(BorderLayout.SOUTH)) ||
(!align.equals(BorderLayout.EAST)) ||
(!align.equals(BorderLayout.WEST)) ) {
throw new IllegalArgumentException("Not a valid alignment");
}
mstTextAlignment = align;
}
/**
* Set button text.
*/
public void setButtonText(String txt) {
mstButtonText = txt;
}
/**
* Set about text message.
*/
public void setText(String msg) {
mstMessage = msg;
}
/**
* Set image icon.
*/
public void setImage(String img) {
mImgIcon = GuiUtils.createImageIcon(img);
}
/**
* Set text font.
*/
public void setFont(Font fnt) {
mFont = fnt;
}
/**
* Set background color.
*/
public void setBackgroundColor(Color color) {
mBgColor = color;
}
/**
* Set foreground color.
*/
public void setForegroundColor(Color color) {
mFgColor = color;
}
/**
* Set dialog title.
*/
public void setTitle(String title) {
if (title != null) {
super.setTitle(title);
}
}
/**
* Get text area component.
*/
private JLabel getTextArea() {
if (mstMessage == null) {
return null;
}
JLabel txtLab = new JLabel();
if (mFont != null) {
txtLab.setFont(mFont);
}
if (mBgColor != null) {
txtLab.setBackground(mBgColor);
}
if (mFgColor != null) {
txtLab.setForeground(mFgColor);
}
txtLab.setText(mstMessage);
txtLab.setHorizontalAlignment(SwingConstants.CENTER);
return txtLab;
}
/**
* Get button panel.
*/
private JPanel getButtonPanel() {
JButton btn = new JButton(mstButtonText);
btn.addActionListener(this);
JPanel pane = new JPanel();
pane.setLayout(new FlowLayout(miButtonAlignment));
pane.add(btn);
return pane;
}
/**
* Get top panel.
*/
private JPanel getTopPanel() {
JPanel topPane = new JPanel();
topPane.setLayout(new BorderLayout());
JLabel txtLab = getTextArea();
if ( (txtLab == null) && (mImgIcon == null) ) {
return null;
}
if (txtLab == null) {
topPane.add(new JLabel(mImgIcon), BorderLayout.CENTER);
return topPane;
}
if (mImgIcon == null) {
topPane.add(txtLab, BorderLayout.CENTER);
return topPane;
}
topPane.add(new JLabel(mImgIcon), BorderLayout.CENTER);
topPane.add(txtLab, mstTextAlignment);
return topPane;
}
/**
* Show about dialog box.
*/
public void display() {
getContentPane().setLayout(new BorderLayout());
JPanel topPane = getTopPanel();
JPanel buttonPanel = getButtonPanel();
if (topPane == null) {
getContentPane().add(buttonPanel, BorderLayout.CENTER);
}
else {
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
getContentPane().add(topPane, BorderLayout.CENTER);
}
pack();
setLocationRelativeTo(mParent);
setVisible(true);
}
/**
* Button action listener. It closes the dialog box.
*/
public void actionPerformed(ActionEvent l) {
close();
}
/**
* Closes the dialog box.
*/
private void closeDialog(WindowEvent evt) {
close();
}
/**
* Close dialog window
*/
public void close() {
setVisible(false);
dispose();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -