gpt4 book ai didi

java - JButton 在单独的类文件中

转载 作者:行者123 更新时间:2023-11-30 07:01:29 27 4
gpt4 key购买 nike

我编写了包含简单 JFrame 的类,我想添加其他按钮这个 JFrame 的类

当我想写的时候

panel.add(new CancelButton())

我得到一个错误:LoginWindow.java:29: error: no suitable method found for add(CancelButton)

你能帮我吗?

import javax.swing.*;
import java.awt.*;


public class LoginWindow {

public LoginWindow(){

//Login Window
JFrame frame = new JFrame("Movie date base");
frame.setSize(500,500);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//label
JLabel label = new JLabel("Welcom to Movie Date Base! ");
label.setFont(new Font("Verdana", Font.PLAIN, 18));
//panel
JPanel panel = new JPanel(new GridBagLayout());
JPanel panel1 = new JPanel(new GridBagLayout());
//add panel to the frame
frame.add(panel);
frame.getContentPane().add(panel, BorderLayout.NORTH);
frame.getContentPane().add(panel1, BorderLayout.SOUTH);

//Grid layout
GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(100,10,10,10);
panel.add(label,c);

}
}

import javax.swing.*;

public class CancelButton {
public CancelButton(){

JButton cancel = new JButton("cancel");

}

}

最佳答案

如果您想将 CancelButton 类视为 JButton,则它必须扩展 JButton。

public class CancelButton extends JButton{
public CancelButton(){
//call the parent-level constructor
super("cancel");

}
}

请注意,我在这里去掉了您的 cancel 变量,因为您的 CancelButton 类现在是一个 JButton。您可以在任何可以使用 JButton 的地方使用它。

但是,如果您想在其他类中使用 cancel 变量,则需要为其创建某种 getter 函数:

public class CancelButton {

JButton cancel;

public CancelButton(){
cancel = new JButton("cancel");
}

public JButton getButton(){
return cancel;
}
}

然后你会像这样调用 getButton() 函数:

panel.add(new CancelButton().getButton())

您采用哪种方法实际上完全取决于您要尝试做什么,以及您希望如何组织代码。

关于java - JButton 在单独的类文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29801389/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com