好多错误提示;但看了不明白,调用到代码了,但revalidate()怎么用啊,继续请教。Exception occurred during event dispatching:java.lang.IllegalArgumentException: wrong parent for CardLayout at java.awt.CardLayout.checkLayout(CardLayout.java:326) at java.awt.CardLayout.show(CardLayout.java:443) at imageviewer.AnalysisImageFrame1.show3window_actionPerformed(AnalysisImageFrame1.java:417) at imageviewer.AnalysisImageFrame1$12.actionPerformed(AnalysisImageFrame1.java:184) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378) at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:268) at javax.swing.AbstractButton.doClick(AbstractButton.java:279) at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:886) at java.awt.Component.processMouseEvent(Component.java:3715) at java.awt.Component.processEvent(Component.java:3544) at java.awt.Container.processEvent(Container.java:1164) at java.awt.Component.dispatchEventImpl(Component.java:2593) at java.awt.Container.dispatchEventImpl(Container.java:1213) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125) at java.awt.Container.dispatchEventImpl(Container.java:1200) at java.awt.Window.dispatchEventImpl(Window.java:914) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.EventQueue.dispatchEvent(EventQueue.java:339) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
好多错误提示;但看了不明白,调用到代码了,但revalidate()怎么用啊,继续请教。Exception occurred during event dispatching:java.lang.IllegalArgumentException: wrong parent for CardLayout at java.awt.CardLayout.checkLayout(CardLayout.java:326) at java.awt.CardLayout.show(CardLayout.java:443) at imageviewer.AnalysisImageFrame1.show3window_actionPerformed(AnalysisImageFrame1.java:417) at imageviewer.AnalysisImageFrame1$12.actionPerformed(AnalysisImageFrame1.java:184) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378) at javax.swing.JToggleButton$ToggleButtonModel.setPressed(JToggleButton.java:268) at javax.swing.AbstractButton.doClick(AbstractButton.java:279) at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseReleased(BasicMenuItemUI.java:886) at java.awt.Component.processMouseEvent(Component.java:3715) at java.awt.Component.processEvent(Component.java:3544) at java.awt.Container.processEvent(Container.java:1164) at java.awt.Component.dispatchEventImpl(Component.java:2593) at java.awt.Container.dispatchEventImpl(Container.java:1213) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125) at java.awt.Container.dispatchEventImpl(Container.java:1200) at java.awt.Window.dispatchEventImpl(Window.java:914) at java.awt.Component.dispatchEvent(Component.java:2497) at java.awt.EventQueue.dispatchEvent(EventQueue.java:339) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:131) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:98) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:85)
如果没有,写成public void actionPerformed(ActionEvent e){...}
1.可以用菜单选项改变窗体布局
2. 用repaint()应该不可以。
3. 仅供参考:
public void actionPerformed(ActionEvent evt){
content=getContentPane();
Object source=evt.getSource();
if (source==bordermenu){
content.setLayout(new BorderLayout());
content.add(test1,BorderLayout.NORTH);
content.add(test2,BorderLayout.CENTER);
//改变布局
pack();
doLayout();
}
else if (source==gridmenu)
{
content.setLayout(null);
content.setLayout(new GridLayout(1,2));
content.add(test1);
content.add(test2);
pack();
doLayout();
}
}good luky!!
jPanel1.setLayout(null);
jPanel1.setLayout(cardLayout1);
jPanel1.add(jPanel2,"jPanel2");
jPanel1.add(jPanel3,"jPanel3");
jPanel1.add(jPanel4,"jPanel4");
pack();
doLayout();
cardLayout1.first(jPanel1); }
if(!show3window.getState()){
jPanel1.setLayout(flowLayout2);
jPanel1.add(jPanel2, "jPanel2");
jPanel1.add(jPanel4, "jPanel4");
jPanel1.add(jPanel3, "jPanel3");
pack();
doLayout();
}