Как добавить компонент и вывести его на JFrame в Java?
Я делаю Java-класс, который конструктор получит JForm
от его параметра, а затем добавит JTable
в этой форме программно, как показано в коде ниже...
public class DEMOCLASS
{
private JTable myJTable = new JTable();
public DEMOCLASS(JFrame incomingForm)
{
incomingForm.add(myJTable);
myJTable.setSize(coloumWidth,rowHeight);
myJTable.setLocation(xpos, ypos);
myJTable.setVisible(true);
//incomingForm.setComponentZOrder(myJTable,0); // Its Bringing The Component To From But Spreading It All Over The Form From Top To Bottom And Left To Right Fully :(
}
}
Теперь главная проблема в том, что там, где этот класс вызывается, есть много компонентов, уже добавленных другим кодированием, и я хочу привести myJTable
компонент на передней панели, который теперь прячется за ними. Короче говоря, я не могу контролировать другие уже добавленные компоненты. Я также слышал о MyGlassPane
а также JLayeredPane
но не могу заставить их работать с моей концепцией здесь.
Мой главный вопрос - как это сделать? myJTable
в передней части всех ранее добавленных компонентов на incomingForm
?
1 ответ
Логика рисования Swing по умолчанию заключается в том, что последний компонент, добавленный на панель, закрашивается первым.
Вы можете изменить это, играя с ZOrder, как вы пытались сделать с закомментированным кодом.
Однако Swing на самом деле не предназначен для нанесения компонентов друг на друга. Компоненты обычно располагаются в двухмерной области, а не в трехмерной. Ваша причина для этого неясна.
Я бы предположил, что вы могли бы:
- Использовать ребенка
JDialog
чтобы отобразить таблицу и ее данные (вы можете сделать диалоговое окно неукрашенным для удаления границ). - Возможно, используйте GlassPane для отображения таблицы.