⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 questiondialog.java

📁 awt图形界面的生成
💻 JAVA
字号:
import java.awt.*;
import java.awt.event.*;

public class QuestionDialog extends WorkDialog 
                            implements ActionListener{
	static private int  _defaultTextFieldSize = 20;
	private Button      okButton;
	private Button      cancelButton;
	private String      question;
	private TextField   textField;
	private boolean     wasCancelled;
	private ButtonPanel buttonPanel = new ButtonPanel();

	public QuestionDialog(Frame  frame, DialogClient client,
							String title, String question,
							String initialResponse, Image image) {
		this(frame, client, title, question, initialResponse, 
			_defaultTextFieldSize, image);
	}
	public QuestionDialog(Frame  frame, DialogClient client,
							String title, String question,
							Image image) {
		this(frame, client, title,
				question, null, _defaultTextFieldSize, image);
	}
	public QuestionDialog(Frame  frame, DialogClient client,
							String title, String question, 
							int textFieldSize, Image image) {
		this(frame, client, title, 
			question, null, textFieldSize, image);
	}
	public QuestionDialog(Frame  frame, DialogClient client, 
							String title, String question,
							String initialResponse, 
							int textFieldSize, Image image) {
		this(frame, client, title, question, initialResponse,
			textFieldSize, image, false);
	}
	public QuestionDialog(Frame  frame, DialogClient client, 
							String title, String question, 
							String initialResponse, 
							int textFieldSize, Image image, 
							boolean modal) {
		super(frame, client, title, modal);

		QuestionPanel questionPanel;

		okButton     = addButton("Ok");
		cancelButton = addButton("Cancel");

		okButton.addActionListener(this);
		cancelButton.addActionListener(this);

		questionPanel = new QuestionPanel(this, question, 
											initialResponse, 
											textFieldSize,
											image);
		textField = questionPanel.getTextField();
		setWorkPanel(questionPanel);
	}
	public void actionPerformed(ActionEvent ae) {
		if(ae.getSource() == cancelButton) 
			wasCancelled = true;
		else                             
			wasCancelled = false;

		dispose();
	}
	public void setVisible(boolean b) {
		textField.requestFocus();
		super.setVisible(b);
	}
	public void returnInTextField() {
		okButton.requestFocus();
	}
	public TextField getTextField() {
		return textField;
	}
	public String getAnswer() {
		return textField.getText();
	}
	public boolean wasCancelled() {
		return wasCancelled;
	}
	private void setQuestion(String question) {
		this.question = question;
	}
}
class QuestionPanel extends Postcard {
	private TextField      field;
	private QuestionDialog dialog;

	public QuestionPanel(QuestionDialog dialog, 
							String question, Image image) {
		this(dialog, question, null, 0, image);
	}
	public QuestionPanel(QuestionDialog dialog, String question,
							int columns, Image image) {
		this(dialog, question, null, columns, image);
	}
	public QuestionPanel(QuestionDialog myDialog, 
							String question,
							String initialResponse, int cols, 
							Image image) {
		super(image, new Panel());

		Panel panel = getPanel();
		this.dialog = myDialog;

		panel.setLayout(new RowLayout());
		panel.add(new Label(question));

		if(initialResponse != null) {
			if(cols != 0) 
				panel.add(field = 
							new TextField(initialResponse, cols));
			else          
				panel.add(field = 
							new TextField(initialResponse));
		}
		else {
			if(cols != 0) panel.add(field = new TextField(cols));
			else          panel.add(field = new TextField());
		}

		field.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent event) {
				dialog.returnInTextField();
			}
		});
	}
	public TextField getTextField() {
		return field;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -