gpt4 book ai didi

Java:引用另一个类中的构造函数

转载 作者:行者123 更新时间:2023-12-01 17:34:56 25 4
gpt4 key购买 nike

我正在尝试制作一个程序,自动从 .json 文件中提取链接。我是编程新手,我正在尝试组织代码,以便其他人能够更轻松地理解它。

我有一个名为 Gui 的构造函数,它在其中添加了一个关闭按钮和一个带有 awt 的文件资源管理器。为了组织项目,我想创建另一个类来提取链接,但我不知道如何在 Gui 类的构造函数中引用带有文件路径的 TextField。

我需要从另一个类(class)的 fe 获取文本。

我在网上搜索了几个小时,但找不到任何适合我的东西。

public class Gui extends Frame {

public Gui() {
Frame gui = new Frame(Strings.name);

// add "close" button
Button cls = new Button(Strings.close);
cls.setBounds(30, 30, 100, 30);
gui.add(cls);
cls.addActionListener(new ActionListener() {

@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);

}
});

// file explorer
TextField fe = new TextField(Strings.file);
fe.setBounds(50,100, 200,30);
fe.setLocation(75, 75);
gui.add(fe);
fe.addMouseListener(new MouseListener() {

public void mouseReleased(MouseEvent e) {}

public void mousePressed(MouseEvent e) {}

public void mouseExited(MouseEvent e) {}

public void mouseEntered(MouseEvent e) {}

@Override
public void mouseClicked(MouseEvent e) {
FileDialog fd = new FileDialog(gui, Strings.cfile, FileDialog.LOAD);
fd.setVisible(true);
fe.setText(fd.getDirectory());
}
});

// make application work
gui.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});

gui.setSize(1200, 900);
gui.setLayout(null);
gui.setVisible(true);
}

}

最佳答案

可以尝试以下更新

public class Gui extends Frame {
//create an inner class
class MyProcess
{
MyProcess(String s)
{
System.out.println("do something with s="+s);
}
}

public static void main(String args[])
{
new Gui();
}

...

@Override
public void mouseClicked(MouseEvent e) {
FileDialog fd = new FileDialog(gui, "file", FileDialog.LOAD);
fd.setVisible(true);
fe.setText(fd.getDirectory());
//use the inner class as needed
new MyProcess(fe.getText());
}


控制台上可能的输出使用 s=D:\some_path\执行某些操作

请注意,内部类不是必需的,也可以是外部类。这仅取决于您的设计。也许将来对于图形界面你可以做一些研究:JavaFxSwing也许Eclipse Graphics LibraryAwt 库是最古老的一个。

关于Java:引用另一个类中的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61058191/

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