Changing the JFrame title

前端 未结 4 508
终归单人心
终归单人心 2020-12-03 15:19

This code compiles, I just can\'t get the name to change on the title bar.

import java.awt.BorderLayout;
import java.awt.event.ActionEvent;  
import java.awt         


        
4条回答
  •  醉酒成梦
    2020-12-03 15:40

    I strongly recommend you learn how to use layout managers to get the layout you want to see. null layouts are fragile, and cause no end of trouble.

    Try this source & check the comments.

    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JTabbedPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    public class VolumeCalculator extends JFrame implements ActionListener {
        private JTabbedPane jtabbedPane;
        private JPanel options;
        JTextField poolLengthText, poolWidthText, poolDepthText, poolVolumeText, hotTub,
                hotTubLengthText, hotTubWidthText, hotTubDepthText, hotTubVolumeText, temp, results,
                myTitle;
        JTextArea labelTubStatus;
    
        public VolumeCalculator(){
            setSize(400, 250);
            setVisible(true);
            setSize(400, 250);
            setVisible(true);
            setTitle("Volume Calculator");
            setSize(300, 200);
            JPanel topPanel = new JPanel();
            topPanel.setLayout(new BorderLayout());
            getContentPane().add(topPanel);
    
            createOptions();
    
            jtabbedPane = new JTabbedPane();
    
            jtabbedPane.addTab("Options", options);
    
            topPanel.add(jtabbedPane, BorderLayout.CENTER);
        }
        /* CREATE OPTIONS */
    
        public void createOptions(){
            options = new JPanel();
            //options.setLayout(null);
            JLabel labelOptions = new JLabel("Change Company Name:");
            labelOptions.setBounds(120, 10, 150, 20);
            options.add(labelOptions);
            JTextField newTitle = new JTextField("Some Title");
            //newTitle.setBounds(80, 40, 225, 20);    
            options.add(newTitle);
            myTitle = new JTextField(20);
            // myTitle WAS NEVER ADDED to the GUI!
            options.add(myTitle);
            //myTitle.setBounds(80, 40, 225, 20);
            //myTitle.add(labelOptions);
            JButton newName = new JButton("Set New Name");
            //newName.setBounds(60, 80, 150, 20);
            newName.addActionListener(this);
            options.add(newName);
            JButton Exit = new JButton("Exit");
            //Exit.setBounds(250, 80, 80, 20);
            Exit.addActionListener(this);
            options.add(Exit);
        }
    
        public void actionPerformed(ActionEvent event){
            JButton button = (JButton) event.getSource();
            String buttonLabel = button.getText();
            if ("Exit".equalsIgnoreCase(buttonLabel)){
                Exit_pressed();
                return;
            }
            if ("Set New Name".equalsIgnoreCase(buttonLabel)){
                New_Name();
                return;
            }
        }
    
        private void Exit_pressed(){
            System.exit(0);
        }
    
        private void New_Name(){
            System.out.println("'" + myTitle.getText() + "'");
            this.setTitle(myTitle.getText());
        }
    
        private void Options(){
        }
    
        public static void main(String[] args){
            JFrame frame = new VolumeCalculator();
            frame.pack();
            frame.setSize(380, 350);
            frame.setVisible(true);
        }
    }
    

提交回复
热议问题