我对Java很陌生。我创建了一个带有jlabel和JTextField的GUI窗口。但是最近,对于一个项目,我需要用这些jlabel和jtextfield创建另一个类,并且需要将它们显示到main class。但我不知道怎么做。我看过这篇教程,但它只涉及jmenu(而不是jtext字段和jlabel)。
从另一个类添加Swing组件
我的代码在下面,
公共类common_items扩展了JFrame{public void item_gui(String labelForMatrix){
JPanel contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
JLabel lbl = new JLabel(labelForMatrix);
lbl.setBounds(5, 5, 424, 14);
lbl.setHorizontalAlignment(SwingConstants.CENTER);
contentPane.add(lbl);
JTextField txt2 = new JTextField();
txt2.setBounds(178, 117, 86, 20);
contentPane.add(txt2);
txt2.setColumns(10);
JTextField txt1 = new JTextField();
txt1.setColumns(10);
txt1.setBounds(178, 64, 86, 20);
contentPane.add(txt1);
JLabel lblRowNumber = new JLabel("Row number");
lblRowNumber.setBounds(189, 39, 67, 14);
contentPane.add(lblRowNumber);
JLabel lblColumnNumber = new JLabel("column number");
lblColumnNumber.setBounds(155, 95, 119, 14);
contentPane.add(lblColumnNumber);
}
}
我曾尝试将它们显示到主类,但失败了。我的主类代码在下面
common_items itm=new common_items();
itm.item_gui();
我建议我该怎么做。
如果我正确理解了您要做的事情,您正在尝试创建一个主JFrame
类,该类包含其他类的组件,如JLabel
或JTextArea
,这些组件连接到类并将它们用作普通组件。
因此,您需要做的只是创建一个主类(而不是JFrame)并创建一个JFrame类(例如,称之为大型机),然后创建components类(例如,textArea JLabel...)并将这些类表示为frame类中的变量(我们将从主类执行)。
也许你只是对代码的理解比对语言的理解更好:
启动程序的Main类(加载包含所有内容的frame类)
public class Main {
public Main(){
//execute the frame
new Frame();
}
public static void main(String[] args) {
new Main(); //execute the function that launches the JFrame
}
}
Frame类,它(显然)包含帧
导入javax.swing.jframe;
public class Frame extends JFrame{
private static final long serialVersionUID = -5151041547543472432L; //ignore this it is just the serial id of the JFrame you can omit this line from your code
ComponentsStorage cs = new ComponentsStorage(); //display class as variable so we can use it more efficnent
public Frame(){
launch(); //execute function
}
public void launch() { //launch
setTitle("Frame Demo");//title
setSize(640, 480);//size (width * height)
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//close when close button is pressed
//you can just do ComponentStorage.tf.blah blah blah... but it is much easier as a variable
cs.label.setSize(500, 500); // you can mess up witht the components you stored there
cs.tf.setSize(40, 5); //as you can see here I am just adding the components by
//add them here
add(cs.label);
add(cs.tf);
setLocationRelativeTo(null);//by setting this you place the screen always in the middle of the screen
setVisible(true);//there is no point of creating JFrames if they aren't visible
}
}
另一个类存储组件(JLabel、jtextfield...)您想要使用的(它可以是任何只包含这些内容的类,即使其中有其他函数,我将其命名为ComponentStorage)
import javax.swing.JTextField;
import javax.swing.JLabel;
public class ComponentsStorage {
JLabel label = new JLabel();
JTextField tf = new JTextField();
}
所以我有一个多项目设置,看起来像这样
我有两个具有相同属性名称的java类。如何将所有属性复制到另一个充满数据的bean。我不想使用传统的表单复制属性,因为我有很多属性。 提前感谢。 1类 2类
我有两个数据库表
在设置到数据库的连接时出现,并在服务器上的日志文件夹中查看文件error_log,我看到。 谁能告诉我,我是否遗漏了一些必要的步骤,或者问题出在哪里?
问题内容: 我想使用AsyncTask从服务器获取Ftp文件夹列表,并将文件夹名称ArrayList返回到主类并更新微调适配器。 在主班我有带适配器的微调器 在AsyncTask中: 那么我应该如何用主类中的ArrayList替换AsyncTask中的arraylist并动态更新Spinner Updater? 问题答案: 您已经将ArrayList 设为 static ,也将其设为public。
我有一个名为TwoNumbers的类,它创建一个包含两个数字的对象。我创建了一个包含此对象的ArrayList<>,并希望将这些对象复制到新的ArrayList中。 问题是我只想将不同的对象复制到新的ArrayList中。当对象内部的数字可能相同时,Java将每个对象视为不同的对象,我不知道如何阻止它复制每个对象。 我的TwoNumber类:公共TwoNumbers(int n1,int n2)