与基本主线程一起,这将显示一个带有句子的窗口,并在选择下拉菜单中的某个内容后立即将字体更改为粗体。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Gui extends JFrame {
private JComboBox box;
private JTextField tf;
private static String [] filename = {"button.png", "x.png"};
public Gui(){
super("The title is");
setLayout(new FlowLayout());
box = new JComboBox(filename);
tf = new JTextField("This is a sentence", 14);
box.addItemListener( new ItemListener() {
public void itemStateChanged(ItemEvent event) {
if(event.getStateChange()==ItemEvent.SELECTED) {
tf.setFont(new Font("Serif", Font.BOLD, 14));
}
}
});
add(box);
add(tf);
}
}
如果我从下拉菜单中选择其他成员,有没有办法让它改回来?
答案 0 :(得分:2)
尝试:
tf.setFont(new Font("Serif", Font.PLAIN, 14));
为了选中项目,请使用box.getSelectedItem()
或box.getSelectedIndex()
。
例如:
public void itemStateChanged(ItemEvent event){
if(event.getStateChange()==ItemEvent.SELECTED){
if (box.getSelectedIndex()==0)
tf.setFont(new Font("Serif", Font.BOLD, 14)); //first item selected
else
tf.setFont(new Font("Serif", Font.PLAIN, 14)); //second item selected
}
}
答案 1 :(得分:0)
如何使用getFont查看您拥有的内容,测试它,并根据您的测试更改您想要的内容?
答案 2 :(得分:0)
box.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tf.setFont(new Font("Serif", Font.BOLD, 14));
}
});
试试这个!