2014-10-17 1 views
1

Я хочу jframe, на котором я динамически добавляю jкомпоненты и нажимаю кнопку мыши, я хочу знать обо всех доступных компонентах и ​​их местоположении (или последовательности). Я использую этот методПолучить все jкомпоненты и их местоположение на jframe

но я получаю строку, которая содержит слишком много информации о компонентах, мне нужно только их имена (не должен имя переменных их имя класса означает JLabel LBL, так что я хочу JLabel) и их последовательность.

Он не знает, как извлечь эту информацию из строки.

+1

Если вы не даете 'Component's вы добавляете имя, с помощью 'setName',' Компонент 'не будет иметь имени. Вы определяете их тип с помощью 'instanceof' (т.е.' if (comp instanceof JLabel) {... '), но тогда вам нужно будет угадать, какой компонент он на самом деле был. Что касается этого местоположения, вы можете использовать 'getLocation' ... – MadProgrammer

+0

, но они предназначены для одного компонента. Мне нужно вызвать метод getLocation() для каждого компонента, который я не могу, потому что я не знаю, сколько компонентов будет там. Они генерируются динамически –

+2

Используйте цикл for for loop для цикла 'Component []' array ... действительно ... – MadProgrammer

ответ

1

Все компоненты имеют метод getLocation, просто взять массив компонентов и петли над ними ...

for (Component comp : getContentPane().getComponents()) { 
    System.out.println(comp.getLocation()); 
} 

Метод getLocation возвратит java.awt.Point, который содержит х/у координаты компонента.

Помните, getComponents будет возвращать только компоненты в непосредственной емкости, это не рекурсивный поиск по себе ...

+0

получил. Спасибо Alot –