从另一个班级控制另一个班级

时间:2011-12-16 07:00:21

标签: java swing panels

我对Swing有一些问题。我有JFrame名为FrameMain。其中有一个名为JPanel的{​​{1}}。

当调用/创建panelChoices时,它会使用多个FrameMain个对象填充panelChoices个对象,这个对象是PanelEntries,其数量为{{1}在它里面(它是我写的一个不同的类)。

我想要做的是当我点击JPanel对象中的一个按钮时,我想要销毁/删除JButton以及其余组件(包括{{1}包含PanelEntries)的对象。

我已尝试使用FrameMain,但它会返回PanelEntriesJButton对象),其中包含super而不是JPanel,其中包含PanelEntries一起。我怎样才能做到这一点?

编辑:似乎我不够清楚,所以这里有更多来自我工作的信息。我现在没有实际的代码,因为我在不同的机器上,但我希望这有助于阐述我的问题。

JButton

备注

  1. 所有课程都在他们自己的FrameMain文件中。
  2. 我需要知道如何从public class FrameMain() { private JFrame frameMain; private JPanel panelChoices; public FrameMain(args) { createGUI(); loadData(); } private void createGUI() { JFrame frameMain = new JFrame(); JPanel panelChoices = new JPanel(new GridLayout(1,1)); frameMain.add(panel); // removed formatting and other design codes since they are not important. pack(); } private void loadData() { boolean available; for (int i = 1; i <= 10; i++) { // do some if/else and give value to boolean available PanelEntries panel = new PanelEntries(i, available); frameMain.add(panel); // more code here to handle data. } } } public class PanelEntries() extends JPanel { public PanelEntries(int num, boolean avb) { JButton button = new JButton("Button Number " + num); button.setEnabled(avb); add(button); // add action listener to created button so that it calls 'nextScreen()' when clicked. // more code pack(); } private void nextScreen() { // destroy/dispose MainFrame here. // See Notes. AnotherFrame anotherFrame = new AnotherFrame(); } } 对象中的按钮处理.java,而不仅仅是处理JFrame。

1 个答案:

答案 0 :(得分:2)

根据给定的信息,

  1. 如果您要退出应用程序,使用System.exit(0);并不是一件大事:)

  2. 如果您要处置框架jframe.dispose();

  3. 如果您要删除组件/所有组件,可以使用.remove(Component) / .removeAll()

  4. 如果这没有帮助,请重新提供更多信息。