gpt4 book ai didi

java - 如何缩放字体大小以自动适应静态 JTextField 大小?

转载 作者:行者123 更新时间:2023-12-02 06:04:47 26 4
gpt4 key购买 nike

我正在 Java 中制作一个矩阵计算器,使用 JPanel 上的 JTextFields 二维数组来输入给定的矩阵。由于放置此矩阵的面板具有固定大小,因此我想缩小文本大小以适应输入数字的长度。

例如:如果是一位数长,则字体大小 = 18。如果是两位数长,则字体大小 = 14。等等。我希望这种情况在用户输入文本时动态发生,并且我希望每次用户与 JTextField 交互时都发生重新绘制,而不仅仅是在用户按“enter”键之后。这是因为该字段是透明的,并且当前看起来很草率(数字重叠),直到用户按下 Enter 键。

最直接、最可靠的方法是什么?这是我当前的代码,如果它可以帮助任何人回答我的问题:

public class MatrixPanel extends JPanel implements ActionListener
{
float[][] matrice = new float[3][3];
JTextField[][] parameter = new JTextField[3][3];
Font font = new Font("SansSerif", Font.BOLD, 40);


public MatrixPanel(String title)
{
setLayout(null);
setOpaque(false);

for (int width = 0; width < 3; width++){
for (int height = 0; height < 3; height++){
matrice[width][height] = 0;
parameter[width][height] = new JTextField();
parameter[width][height].setHorizontalAlignment(JTextField.CENTER);
parameter[width][height].setFont(font);
parameter[width][height].setText("0");
parameter[width][height].setLocation((50*width), (50*height));
parameter[width][height].setSize(50,50);
parameter[width][height].setOpaque(false);
parameter[width][height].setBorder(null);
parameter[width][height].addActionListener(this);
add(parameter[width][height]);
}

setSize(150,150);
}
}

最佳答案

I want to scale down the text size to accommodate how long the number is as it's being typed in.

查看 How to Write a DocumentListener 以实现您的目标。

一些有用的提示:

关于java - 如何缩放字体大小以自动适应静态 JTextField 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22388100/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com