0
텍스트 필드와 두 개의 체크 박스에 굵게 및 기울임 꼴 텍스트를 제공하는 다음 코드가 있습니다. eventListener는 itemStateChange이지만 두 번째 if else 문과 함께 작동하고 첫 번째 문을 건너 뜁니다. 나는 기울임 꼴로 굵은 글씨로 바꾸려고 시도했지만 이탤릭체는 작동하지만 굵게는 작동하지 않는다. 그래서 else 문장 만 작동합니다.itemStateChanged() 하나의 체크 박스에만 영향을 받음
코드가
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JTextField;
public class CreateFrame extends JFrame implements ItemListener {
private JTextField textField;
private JCheckBox bold, itelaic;
public CreateFrame() {
setDefaultCloseOperation(EXIT_ON_CLOSE);
setTitle("JCkeckBox Test");
textField = new JTextField(30);
textField.setText("Watch the font style change");
bold = new JCheckBox("Bold");
itelaic = new JCheckBox("Italic");
add(textField);
add(bold);
add(itelaic);
bold.addItemListener(this);
itelaic.addItemListener(this);
setLayout(new FlowLayout());
setSize(100, 120);
setVisible(true);
}
public static void main(String[] args) {
new CreateFrame();
}
public void itemStateChanged(ItemEvent e) {
if(bold.isSelected()) {
textField.setFont(new Font("TimesRoman", Font.BOLD,14));
} else {
textField.setFont(new Font("TimesRoman", Font.PLAIN,14));
}
if(itelaic.isSelected()){
textField.setFont(new Font("TimesRoman", Font.ITALIC,14));
} else {
textField.setFont(new Font("TimesRoman", Font.PLAIN,14));
}
}
}