导航站 wordpress,成都企业做网站多少钱,邢台123交友信息手机版,常见的网络营销有哪些我有一个JFrame,它有一些选项.当按下OK按钮时,我想要相同的JFrame清除内容并添加新内容.我试过了,但问题是新的JFrame被弹出.我究竟做错了什么#xff1f;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOExcept…我有一个JFrame,它有一些选项.当按下OK按钮时,我想要相同的JFrame清除内容并添加新内容.我试过了,但问题是新的JFrame被弹出.我究竟做错了什么import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.IOException;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.logging.Level;import java.util.logging.Logger;import javax.swing.*;public class GuiFrame extends JFrame {final JFrame f new JFrame(Test);public void Starter(){ImageIcon img new ImageIcon(C:\\Users\\neal\\Desktop\\no.png);f.setIconImage(img.getImage());ButtonGroup group new ButtonGroup();final JRadioButton Acess new JRadioButton(Acess);final JRadioButton Chat new JRadioButton(Chat);group.add(Acess);group.add(Chat);f.setSize(400,100);f.setLocationRelativeTo(null);JButton OptionOk new JButton(OK);Label option new Label(Choose a Option);final Container content f.getContentPane();content.setBackground(Color.white);content.setLayout(new FlowLayout());content.add(option);content.add(Acess);content.add(Chat);content.add(OptionOk);f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);OptionOk.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {try {new GuiFrame().Initiate();} catch (UnknownHostException ex) {Logger.getLogger(GuiFrame.class.getName()).log(Level.SEVERE, null, ex);}}});}public void Initiate() throws UnknownHostException {f.removeAll();ButtonGroup group new ButtonGroup();final JRadioButton ButtonServer new JRadioButton(Server);final JRadioButton ButtonClient new JRadioButton(Client);group.add(ButtonServer);group.add(ButtonClient);f.setSize(400, 100);f.setLocationRelativeTo(null);InetAddress thisIp InetAddress.getLocalHost();ImageIcon img new ImageIcon(C:\\Users\\neal\\Desktop\\no.png);f.setIconImage(img.getImage());Label lip new Label(Your IP is : thisIp.getHostAddress());Label setup new Label(Setup as );JButton ButtonOk new JButton(OK);final Container content f.getContentPane();content.setBackground(Color.white);content.setLayout(new FlowLayout());content.add(lip);content.add(setup);content.add(ButtonServer);content.add(ButtonClient);content.add(ButtonOk);f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);}public static void main(String[] args) throws UnknownHostException {GuiFrame gf new GuiFrame();gf.Starter();}}解决方法:解决方案很简单使用CardLayout,让这个布局管理器为您完成所有繁重的工作.有关如何执行此操作的更多详细信息,请参阅教程How to use CardLayout至于你的代码,请注意你实际上在启动时创建了2个JFrame,如果推送了JButton则还有两个GuiFrame类本身扩展了JFrame,但它似乎是一个你永远不会使用的JFrame,因此被浪费了,但它在程序启动时以及每当创建GuiFrame实例时创建,例如按下按钮时.然后在这个类的内部创建另一个JFrame f,一个在程序启动时再次按下按钮,我不认为这是你想要做的.因此,更改代码以使类不扩展JFrame,并且不要在按钮的ActionListener中创建类的新实例.而是使用CardLayout交换视图.例如import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class GuiFrame {private static final String FIRST_PANEL First Panel;private static final String SECOND_PANEL Second Panel;final JFrame f new JFrame(Test);private CardLayout cardLayout new CardLayout();private JPanel content;public void Starter() {f.setSize(400, 100);f.setLocationRelativeTo(null);JButton OptionOk new JButton(OK);Label option new Label(Choose a Option);content (JPanel) f.getContentPane();content.setLayout(cardLayout);JPanel firstPanel new JPanel();firstPanel.setBackground(Color.white);firstPanel.setLayout(new FlowLayout());firstPanel.add(option);firstPanel.add(OptionOk);content.add(firstPanel, FIRST_PANEL);content.add(createSecondPanel(), SECOND_PANEL);f.setVisible(true);f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);OptionOk.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {cardLayout.show(content, SECOND_PANEL);}});}private JPanel createSecondPanel() {JPanel secondPanel new JPanel();secondPanel.add(new JButton(new AbstractAction(Go Back) {public void actionPerformed(ActionEvent e) {cardLayout.show(content, FIRST_PANEL);}}));return secondPanel;}public static void main(String[] args) {GuiFrame gf new GuiFrame();gf.Starter();}}来源https://www.icode9.com/content-1-463801.html