gpt4 book ai didi

java - 如何从一个 Java 类加载另一个?

转载 作者:行者123 更新时间:2023-11-29 09:01:57 25 4
gpt4 key购买 nike

查看此 link用于解决问题

我正在做一个项目,其中有一个下拉列表,当在列表中选择一个选项时,它会加载一个带有自定义设置的小程序。小程序的主类名称为SteadyStateFusionDemo。我不明白为什么我会遇到这么多麻烦,因为我知道我必须使用 ClassLoader,但坦率地说,我不知道该怎么做。

这是我的下拉列表的代码。我想从列表中的选项链接到其他类。

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.lang.ClassLoader;
import ssfd.SteadyStateFusionDemo;

//**Creates Drop down Menu where choices show up in the box next to it//
//After one of these is selected, it loads the SteadyStateFusionDemo class//
//It also transmits a variable to the VariableStorage class, so that those//
//values can be used in operating the Tokamak.**//
public class ComboBox{
JComboBox combo;
JTextField txt;
public static void main(String[] args) {
ComboBox b = new ComboBox();
}

public ComboBox(){
String course[] = {"NSTX","LTX","ITER"};
JFrame frame = new JFrame("Creating a JComboBox Component");
JPanel panel = new JPanel();
combo = new JComboBox(course);
combo.setBackground(Color.gray);
combo.setForeground(Color.red);
txt = new JTextField(10);
panel.add(combo);
panel.add(txt);
frame.add(panel);
combo.addItemListener(new ItemListener(){
public void itemStateChanged(ItemEvent ie){
String str = (String)combo.getSelectedItem();

//Where the ItemListener interprets the choice, and then loads the SteadyStateFusionDemo class.

if (str == "NSTX") {
txt.setText("A");
//loads SteadyStateFusionDemo, NSTX version

}
if (str == "ITER") {
txt.setText("B");
//loadsSteadyStateFusionDemo, ITER version




}
if (str == "LTX") {
txt.setText("C");
//loads SteadyStateFusionDemo, LTX version

}

此后还有更多内容,但与问题无关。

谁能帮我弄清楚如何链接这两个类?第二个类在不同的包中,它不使用静态方法。我实际上已经在整个互联网上寻找解决方案,但可惜没有运气。 :(

最佳答案

您可以使用 Class.forName 动态加载类,如下例所示,这会解决您的问题吗?

Class<?> clazz = Class.forName("ssfd.SteadyStateFusionDemo");
SteadyStateFusionDemo ssfd = clazz.newInstance();

关于java - 如何从一个 Java 类加载另一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16864063/

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