2014-10-27 6 views
2

Я ищу, чтобы добавить текстовое поле на мой JPanel. Это текстовое поле будет похоже на что-то вроде Microsoft PowerPoint: одно, которое вы можете изменить, перемещаться и т. Д. Я просмотрел JTextField, но я не думаю, что это то, что мне нужно. Я не нужно всплывающее окно, как это:Как добавить редактируемое текстовое поле в JPanel

enter image description here

У меня есть программа, которая позволяет пользователю добавлять, изменять размер и перемещать фигуры. Теперь я хочу разместить текстовое поле в этих фигурах. Вот пример того, что я ищу:

enter image description here

Есть в любом случае я могу это сделать? Благодарю.

+0

Либо обрабатывать ввод с клавиатуры вручную через KeyListener или просто использовать JTextArea или другой текстовый компонент. –

+0

JTextArea близок к тому, что мне нужно. Но мне нужно это без рамки и отображать только текст. Это возможно? – nick

+2

Несомненно. Ознакомьтесь с API для полезных методов, таких как методы настройки границы. –

ответ

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

+1

Вам нужно получить класс Java ComponentResizer из ссылки, которую я разместил, и поместить в проект – lbalazscs

+0

DUH! Прости, пропустил это :) – nick

Смежные вопросы