對不起,如果這是你的另一個愚蠢的愚蠢問題,但我仍然是Java編程語言的新手。如何更改或分配值給另一個類的專用變量JTextField?
我有3類:InputClass
,PreviewClass
和MainClass
。
MainClass
包含main method
來運行程序。 InputClass
包含用於輸入的private JTextField
和用於在PreviewClass
中將文本設置爲JTextField
的JButton
。 PreviewClass
包含專用JTextField
以顯示InputClass
中的輸入文字。
我究竟該怎麼做(分配在PreviewClass
價值JTextField
)沒有創建實例InputClass
的,然後使用getter-method-like
獲得它的價值,或者,不在InputClass
使JTextField
一個static
變量,所以我可以訪問它與一些static method
?
只是爲了顯示你我的觀點,這裏是代碼:
InputClass
import javax.swing.*; import java.awt.*; import java.awt.event.*; public class InputClass extends JPanel implements ActionListener{ private JTextField inputName; private JButton inputButton; public InputClass() { setLayout(new FlowLayout()); inputName=new JTextField(15); inputButton=new JButton("INPUT"); inputButton.addActionListener(this); add(inputName); add(inputButton); } @Override public void actionPerformed(ActionEvent event) { // How do I change/assign a text to the PreviewClass from here? } }
PreviewClass
import javax.swing.*; import java.awt.*; public class PreviewClass extends JPanel{ private JTextField namePreview; public PreviewClass() { setLayout(new FlowLayout()); namePreview=new JTextField(15); namePreview.setEditable(false); add(namePreview); } }
MainClass
import javax.swing.*; import java.awt.*; public class MainClass extends JFrame{ private static final int FRAME_WIDTH=250; private static final int FRAME_HEIGHT=150; private static final int FRAME_X_ORIGIN=400; private static final int FRAME_Y_ORIGIN=300; private InputClass inputPanel; private PreviewClass previewPanel; private JTabbedPane tabbedPane; private Container contentPane; public MainClass() { contentPane=getContentPane(); contentPane.setLayout(new BorderLayout()); setTitle("How to Assign Value from Another Class"); setSize(FRAME_WIDTH, FRAME_HEIGHT); setLocation(FRAME_X_ORIGIN, FRAME_Y_ORIGIN); inputPanel=new InputClass(); previewPanel=new PreviewClass(); tabbedPane=new JTabbedPane(); tabbedPane.add("Input Name", inputPanel); tabbedPane.add("Preview Name", previewPanel); contentPane.add(tabbedPane, BorderLayout.CENTER); setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { MainClass frame=new MainClass(); frame.setVisible(true); } }
你想在InputClass獲得 「inputName」 的值,並賦值爲 「namePreview」 在PreviewClass? – AJJ
你是什麼意思,而不創建一個InputClass的實例,然後使用getter-method-like來獲得它的值呢?在MainClass中實例化時重寫'actionPerformed'怎麼辦? – ssssteffff