【发布时间】:2022-01-14 08:14:24
【问题描述】:
中间有一个字母“Hello world”。如果在这个字母上按键盘“+”,大小增加2,如果按“-”,大小减少2。但字体大小应始终在10到50磅之间。一开始是16分。
我正在解决这个问题。
字体大小只有2增2减。
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
public class T_1_2 extends JFrame {
private int fontSize = 16; // 글자 크기
private JLabel lb;
T_1_2() {
setTitle("My Frame");
setSize(600, 400);
setDefaultCloseOperation(EXIT_ON_CLOSE);
add(lb=new JLabel("Hello, World!"),
BorderLayout.CENTER);
lb.setHorizontalAlignment(JLabel.CENTER); //라벨 가운데 정렬
setFont();
addKeyListener(new KeyAdapter() { //keylistener 클래스를 이미 구현
@Override // 특정 동작이 일어나게 하려면 override해서 사용
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_UP) {
lb.setFont(new Font("Serif", Font.PLAIN, fontSize+2));
}
else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
lb.setFont(new Font("Serif", Font.PLAIN, fontSize-2));
}
}
});
setVisible(true);
}
private void setFont() {
lb.setFont(new Font("Serif", Font.PLAIN, fontSize));
}
public static void main(String[] args) {
new T_1_2();
}
}
输出
字体大小只有2增2减。
预期
当字母为 vk_up 时,字母变大 2 点,当字母为 vk_down 时,字母变小 2 点。
应该只有10到50分,跑的时候字母要以16分开头。
【问题讨论】:
-
Math.min(50, fontSize + 2),例如。
标签: java swing fonts jlabel keyevent