📄 bookbuyerguiimpl.java
字号:
package bookTrading.buyer;
import jade.core.AID;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import bookTrading.swing.DateChooser;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Iterator;
public class BookBuyerGuiImpl extends JFrame implements BookBuyerGui {
BookBuyerGuiImpl(BookBuyerAgent a) {
super(a.getLocalName());
myAgent = a;
JPanel mainPanel = new JPanel();
mainPanel.setLayout(new GridLayout(2, 1, 2, 2));
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
JPanel p = new JPanel();
p.setLayout(gridbag);
c.fill = GridBagConstraints.BOTH;
c.weightx = 1.0;
JLabel l = new JLabel("Book title:");
gridbag.setConstraints(l, c);
p.add(l);
titleField = new JTextField(15);
titleField.setText("Book title");
c.gridwidth = GridBagConstraints.REMAINDER;
gridbag.setConstraints(titleField, c);
p.add(titleField);
l = new JLabel("Best cost:");
c.gridwidth = 1;
gridbag.setConstraints(l, c);
p.add(l);
bestCostField = new JFormattedTextField(
NumberFormat.getCurrencyInstance());
bestCostField.setValue(new Float(0));
gridbag.setConstraints(bestCostField, c);
p.add(bestCostField);
l = new JLabel("Max cost:");
gridbag.setConstraints(l, c);
p.add(l);
maxCostField = new JFormattedTextField(
NumberFormat.getCurrencyInstance());
maxCostField.setValue(new Float(1000));
c.gridwidth = GridBagConstraints.REMAINDER;
gridbag.setConstraints(maxCostField, c);
p.add(maxCostField);
l = new JLabel("Dealine:");
c.gridwidth = 1;
gridbag.setConstraints(l, c);
p.add(l);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
deadlineField = new JFormattedTextField(dateFormat);
Calendar deadline = GregorianCalendar.getInstance();
deadline.add(Calendar.DAY_OF_MONTH, 8);
deadlineField.setValue(deadline.getTime());
c.gridwidth = 2;
gridbag.setConstraints(deadlineField, c);
p.add(deadlineField);
JButton b = new JButton("Set");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
if (dateChooser == null) {
dateChooser = new DateChooser(deadlineField);
}
Point p = getLocationOnScreen();
p.y = p.y+30;
dateChooser.showDialog("DateTime Chooser", p);
}
});
c.gridwidth = GridBagConstraints.REMAINDER;
gridbag.setConstraints(b, c);
p.add(b);
JPanel gp = new JPanel();
gp.setLayout(new GridLayout(1,3));
b = new JButton("Set CreditCard");
gp.add(b);
gridbag.setConstraints(gp, c);
p.add(gp);
mainPanel.add(p);
msgArea = new JTextArea(8, 40);
msgArea.setEditable(false);
msgArea.setLineWrap(true);
JScrollPane msgPanel = new JScrollPane(msgArea);
mainPanel.add(msgPanel);
Container container = getContentPane();
container.add(mainPanel, BorderLayout.CENTER);
b = new JButton("Buy");
b.addActionListener( new ActionListener() {
public void actionPerformed(ActionEvent ev) {
try {
String title = titleField.getText().trim();
Number number = (Number)bestCostField.getValue();
float bestCost = number.floatValue();
number = (Number)maxCostField.getValue();
float maxCost = number.floatValue();
Date deadline = (Date)deadlineField.getValue();
myAgent.purchase(title, bestCost, maxCost, deadline);
}
catch (Exception e) {
JOptionPane.showMessageDialog(
BookBuyerGuiImpl.this,
"Invalid values. " + e.getMessage(),
"Error",
JOptionPane.ERROR_MESSAGE);
}
}
} );
p = new JPanel();
p.add(b);
b = new JButton("Reset");
p.add(b);
b = new JButton("Exit");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ev) {
myAgent.doDelete();
}
});
p.add(b);
container.add(p, BorderLayout.SOUTH);
// Make the agent terminate when the user closes
// the GUI using the button on the upper right corner
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
myAgent.doDelete();
}
});
setResizable(false);
}
public void show() {
pack();
Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
int centerX = (int)screenSize.getWidth() / 2;
int centerY = (int)screenSize.getHeight() / 2;
setLocation(centerX - getWidth() / 2, centerY - getHeight() / 2);
super.show();
}
public void notifyUser(final String message) {
Runnable notifyU = new Runnable() {
public void run() {
msgArea.append(message);
msgArea.append("\n");
}
};
SwingUtilities.invokeLater(notifyU);
}
private BookBuyerAgent myAgent;
private JTextField titleField;
private JFormattedTextField bestCostField;
private JFormattedTextField maxCostField;
private JFormattedTextField deadlineField;
private DateChooser dateChooser;
private JTextArea msgArea;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -