如何在JPanel中添加可编辑的文本框

时间:2014-10-27 14:59:30

标签: java swing text

我希望在我的JPanel上添加一个文本框。此文本框将类似于Microsoft PowerPoint中的类似:您可以调整大小,移动等等。我已经调查了JTextField但我不认为这是我需要的。我需要这样的弹出框:

enter image description here

我有一个允许用户添加,调整大小和移动形状的程序。我现在希望能够将文本框放入这些形状中。这是我正在寻找的一个例子:

enter image description here

反正我能做到吗?感谢。

1 个答案:

答案 0 :(得分:1)

ComponentResizer课程负责调整大小。以下是可调整大小的JTextArea的工作示例:

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        @Override
        public void run() {
            buildGUI();
        }
    });
}

private static void buildGUI() {
    JFrame f = new JFrame("Test");
    f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);

    ComponentResizer cr = new ComponentResizer();
    JPanel mainPanel = new JPanel(null);
    f.add(mainPanel);

    JTextArea textArea = new JTextArea("Some text\nSome other text");
    cr.registerComponent(textArea);

    mainPanel.add(textArea);
    textArea.setBounds(50, 50, 150, 150);

    f.setSize(400, 400);
    f.setLocationRelativeTo(null);
    f.setVisible(true);
}

如果您还想移动JTextArea,可以另外使用ComponentMover并添加以下代码:

    ComponentMover cm = new ComponentMover();
    cm.registerComponent(textArea);
    cm.setDragInsets( cr.getDragInsets() );