当前位置: 首页 > 面试题库 >

更改JFrame标题

马宜民
2023-03-14
问题内容

这段代码可以编译,我只是无法在标题栏上更改名称。

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();   
        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()  
    {  
        this.setTitle(myTitle.getText());  
    }  
    private void Options()  
    {  
    }  
    public static void main(String[] args)  
    {  
        JFrame frame = new VolumeCalculator();  
        frame.setSize(380, 350);  
        frame.setVisible(true);  
    }  
}

问题答案:

如果您的课程扩展了JFrame,请使用 this.setTitle(newTitle.getText());

如果没有,并且包含一个名为myFrame的JFrame,则使用 myFrame.setTitle(newTitle.getText());

现在,您已经发布了程序,很明显,您只需要一个JTextField即可获得新标题。这些更改将达到目的:

JTextField poolLengthText, poolWidthText, poolDepthText, poolVolumeText, hotTub,
        hotTubLengthText, hotTubWidthText, hotTubDepthText, hotTubVolumeText, temp, results,
        newTitle;

和:

    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);
        newTitle = new JTextField("Some Title");
        newTitle.setBounds(80, 40, 225, 20);
        options.add(newTitle);
//        myTitle = new JTextField("My Title...");
//        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);
    }

和:

private void New_Name()
{
    this.setTitle(newTitle.getText());
}


 类似资料:
  • 问题内容: 好的,所以我一直在研究这一点。我对Java还是很陌生,但认为这很容易。我已经尝试了本网站上已回答的所有方法,但仍然没有运气,通常,当我在这里查看时,我能够找到适合我所寻找答案的答案。有谁知道如何更改JFrame右上角的Java图标。我非常肯定它不是我的文件路径,因为我的所有图像都在同一个文件夹中并且都可以工作,这是我似乎无法使用的唯一文件。 这是我的程序主菜单代码的第一部分,除我尝试添

  • 我看了其他答案,试着: 以及: 在类中,我把图像文件放在资源文件夹中,也放在与我的文件和我项目的根文件夹中,甚至在开始时包含了/符号URL字符串,但没有工作。我想知道最近有没有人尝试过并成功了?

  • 好的,所以我一直在安静地研究这个。我对java相当陌生,但认为这个会很容易。我尝试了几乎所有在这个网站上得到答案的方法,但仍然没有运气,通常当我看这里的时候,我能够找到一个符合我所寻找的答案。有人知道如何更改JFrame顶角的Java图标吗?我很确定这也不是我的文件路径,因为我所有的图像都在同一个文件夹中,它们都可以工作,这是我唯一无法工作的。 这是我的程序主菜单的第一部分代码,除了尝试添加图标图

  • 问题内容: 我正在使用以下代码, 用于更改JFrame中的工具栏颜色。但这没有用。 是否可以在JFrame中更改标题栏的颜色? 问题答案: 这是不可能的。顶级JFrame由底层OS的外观控制。 您可以更改的颜色。

  • 我正在使用swing,我无法在WindowBuilder中更改组件区域中的JFrame。我只能看到主框架。当我按下一个按钮时,我会创建一个新的框架,但我不能用WindowBuilder编辑它。

  • 我试图在JFrame中更改JPanel的背景。JFrame由JPanels组成,很像一个网格。我试图改变JFrame中的一个随机JPanel,并查看循环中每一次的颜色变化。 如果取消对panel.add(individualPanel)行的注释,这将显示颜色变化,但它会不断向JFrame添加越来越多的JPanels。但是,注释这一行可以让我更改颜色,但不会显示JFrame中的任何更改。我试着修改了