Получить объект из компонента Java Swing - PullRequest
3 голосов
/ 01 апреля 2012

Я работал над проектом Java Swing, где мне нужно получить объект / экземпляр, который создал панель, чтобы вызвать простой метод сохранения, специфичный для этого экземпляра.

У вас есть JFrame с JTabbedPane, у которого есть вкладки, созданные путем создания экземпляра класса, который создает JPanel и добавляет его в JTabbedPane. Мне нужно найти конкретный экземпляр на выбранной вкладке JPanel / на JTabbedPane, чтобы затем вызвать его сохранение способ.

Есть идеи? Спасибо за ваше время!

public class frame extends JFrame implements ActionListener{
 Builds a frame dubbed "frame" that is static.
 Builds a static JTabbedPane dubbed "pane"and adds it to the frame.
 Creates a button that creates a new instance of sheet.

 public void actionPerformed(MAGIC!){
  See if a button on the panel has been pressed and uses the currently selected tab to locate the correct instance of sheet to run it's save method.
 }
}

public class sheet extends JPanel{
 In constructor makes a JPanel and adds it to "pane"

 Describes a save method that outputs a variable unique to the instance.
}

Ответы [ 3 ]

1 голос
/ 02 апреля 2012

Я понял, что все, что мне нужно было сделать, это сохранить новые объекты вкладок в ArrayList derp .Спасибо за ваши попытки, ребята!

0 голосов
/ 01 апреля 2012

Вместо того, чтобы просто подключиться к первоначальному создателю, мой подход к этому заключался в создании / использовании интерфейса, который явно поддерживает сохранение.Я создал что-то для этого в TUS, моем проекте sourceforge

http://tus.svn.sourceforge.net/viewvc/tus/tjacobs/io/filepersist/

Проверьте Persistable и Persistable2.Конечно, все может быть Persistable, но абстракция позволяет вам избежать явных связей с классом создателя

0 голосов
/ 01 апреля 2012

Вы можете добавить поле в новых JPanels, которые указывают на экземпляр создателя. Я не думаю, что есть такой метод, чтобы указать на родительский класс в API.

- EDIT-- Вы можете проверить http://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html getSelectedIndex () может быть тем, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...