2014-10-27 945 views
2

我正在尋找將文本框添加到我的JPanel中。這個文本框將類似於Microsoft PowerPoint中的內容:可以調整大小,移動等等。我已經查看了JTextField,但我不認爲這是我需要的。我做需要一個彈出框是這樣的:如何在JPanel中添加可編輯文本框

enter image description here

我有一個程序,允許用戶添加,調整大小和移動形狀。我現在希望能夠將文本框放入這些形狀中。下面是我所期待的一個例子:

enter image description here

有反正我能做到這一點?謝謝。

+0

無論是手動處理的鍵盤輸入通過KeyListener,或者只使用JTextArea或其他文本組件。 – 2014-10-27 15:01:56

+0

JTextArea接近我所需要的。但我需要它沒有邊框,並只顯示文字。這可能嗎? – nick 2014-10-27 15:02:59

+2

當然。查看API以獲取有用的方法,例如設置邊框的方法。 – 2014-10-27 15:03:41

回答

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()); 
+0

感謝您的帖子!我需要什麼導入ComponentResizer? – nick 2014-10-27 16:48:17

+1

您需要從我發佈的鏈接中獲取ComponentResizer java類,並將其放入您的項目 – lbalazscs 2014-10-27 16:52:24

+0

DUH!對不起,錯過了:) – nick 2014-10-27 16:57:18

相關問題