如何向上或向下扩展JComponents?

时间:2012-10-07 14:51:52

标签: java swing scaling jtextarea paintcomponent

在我的应用程序中,我需要在面板上的某个位置绘制JTextArea,我需要能够放大和缩小它。

为了定位它,我可以使用绝对定位,但缩放是一个挑战 - 我可以通过调整paintComponent方法轻松缩小它:

@Override
public void paintComponent(Graphics g) {
    Graphics2D g2 = (Graphics2D) g;
    g2.scale(0.5,0.5);
    super.paintComponent(g2);
}

但是扩展不起作用 - 因为我明确地使用setBounds设置了组件的边界,所以扩展组件的一部分最终没有被绘制。我该如何解决?

编辑:一点解释。

我维护的应用程序是一种图形编辑器,我需要添加一个向工作区添加类似注释的功能,以便用户可以直接在该工作区域键入文本。与大多数图形编辑器一样,工作区域可以移动和放大/缩小,因此用户输入文本的文本区域也应该移动和缩放。

1 个答案:

答案 0 :(得分:2)

如果缩放时文字组件必须保持可编辑状态,您可以将缩放系数中使用的Font缩放比例因子,如here所示。

image