📄 billboardcustomizer.java
字号:
package Marcel;
import java.awt.*;
import java.awt.event.*;
import java.beans.*;
public class BillboardCustomizer extends Panel
implements Customizer, ActionListener {
private CentralPerk target;
private TextField fontField, msgField;
private PropertyChangeSupport support =
new PropertyChangeSupport(this);
public void setObject(Object obj) {
target = (CentralPerk) obj;
Label t1 = new Label("Font:");
add(t1);
fontField = new TextField(encode(target.getFont()), 20);
add(fontField);
fontField.addActionListener(this);
Label t2 = new Label("Message:");
add(t2);
msgField = new TextField(target.getMessage(), 20);
add(msgField);
msgField.addActionListener(this);
}
public Dimension preferredSize() {
return new Dimension(225, 60);
}
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if (source==fontField) {
String txt = fontField.getText();
try {
target.setFont (Font.decode (txt));
} catch (NumberFormatException ex) {
fontField.setText(encode(target.getFont()));
}
support.firePropertyChange("", null, null);
}else if (source==msgField) {
target.setMessage (msgField.getText());
support.firePropertyChange("", null, null);
}
}
public void addPropertyChangeListener(
PropertyChangeListener l) {
support.addPropertyChangeListener(l);
}
public void removePropertyChangeListener(
PropertyChangeListener l) {
support.removePropertyChangeListener(l);
}
private String encode (Font f) {
String style;
if (f.isBold())
style = f.isItalic() ? "bolditalic" : "bold";
else
style = f.isItalic() ? "italic" : "plain";
return f.getName() + "-" + style + "-" + f.getSize();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -