当前位置: 首页 > 知识库问答 >
问题:

按键时如何调整字体大小?

暴奕
2023-03-14

中间有一个字母“你好世界”。如果你按下这个字母上的键盘“”,大小增加2,如果你按下“-”,大小减少2。但是字体大小应该总是在10到50分之间。一开始是16分。

我正在解决这个问题。

字体大小只有两个增加和两个减少。

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点。

它应该只有10到50分,运行时字母应该以16分开始。

共有1个答案

锺离锦
2023-03-14

您从未实际更新fontSize变量。事实上,字体大小始终为16。您需要做的是更改fontSize的值,然后使用setFont()方法,这将在keyListener中发生:

addKeyListener(new KeyAdapter() {

    @Override
    public void keyPressed(KeyEvent e) {
        if(e.getKeyCode() == KeyEvent.VK_UP) {
            if(fontSize < 50)
                fontSize += 2; //change value of fontSize by adding 2
        }
        else if(e.getKeyCode() == KeyEvent.VK_DOWN) {
            if(fontSize > 10)
                fontSize -= 2;
        }
        setFont(); //use your setFont() method to set the label font with the new font size
    }
});
 类似资料:
  • 问题内容: 我一直试图(徒劳地)建立一个页面,当我更改窗口大小时,其元素将重新调整大小。我可以在CSS中使用它来处理图像,但是没有问题,但是我似乎无法在文本上完成相同的操作,而且我不确定在CSS中是否有可能。而且我似乎找不到能完成此任务的jQuery脚本。 当用户调整窗口大小时,我实质上希望页面能够动态流畅地缩放,而无需用户调用页面缩放。通过css在我的img div上这可以正常工作,但对于文本则

  • 我的布局文件中确实有一个。与此类似: 上述实现的代码是: 我想让“小写文本”中的文本。我该怎么做?

  • 问题内容: 它由9个框组成,中间带有文本。我已经制作了框,以便它们可以随着屏幕大小的变化而调整大小,以便始终保持在同一位置。 但是,即使我使用百分比,文本也不会调整大小。 如何调整文本的大小,使其在整个页面上始终具有相同的比例? 这是处理多种分辨率的合适解决方案吗?还是我应该在CSS中进行很多检查并为每种媒体类型设置许多布局? ``` html, body { } #launchmain { }

  • 问题内容: 我正在尝试为入门者创建一个简单的文字处理器,以更好地学习Python。 我将Tkinter小部件用于主要编辑程序,唯一的问题是 高度 和 宽度 由字符定义。 当我更改字体时,这会产生问题,因为并非所有字体的宽度都相同。 每次更改字体时,“文本”小部件都会重新调整大小,尽管从技术上讲,它的宽度和高度是相同的。尝试输入内容时,这看起来很荒谬,我正在尝试使文字处理器尽可能 好 。 有没有一种

  • 我有下面的代码,它设置了一个特定大小的窗口。它还从外部URL加载图像。

  • 我有一个窗口与列表框,调整大小与彼此。我用网格来做这个。列表框下面有一排按钮,它们当前正在随着窗口移动和调整大小。我希望按钮保持原位,并在窗口和列表框调整大小时保持一致的大小(所以按钮总是保持在列表框的左下角)。 有简单的方法吗?我今天才开始使用Tkinter,所以我可能只是在文档中错过了它,或者可能只是在网格布局上感到困惑。 按钮设置如下: 我已经尝试了所有粘性组合,但那些不调整按钮大小的组合仍