Java Can';t访问第二个JPanel中的JtextField值
我从1小时开始尝试,但无法从JPanel访问我的jtextField到Jpanel1。 我正在进行一个课程项目,在该项目中,我必须使用jlabel在JPanel中显示登录用户的名称,但我无法从jpanel1访问JPanel中的jTextField。 我使用它使我的JTextField1成为公共静态,但仍然无法捕获值 我使用这段代码从JPanel1中的JPanel获取值。我正在做的是在JPanel1中创建一个JPanel对象,然后尝试获取该值Java Can';t访问第二个JPanel中的JtextField值,java,swing,jtextfield,Java,Swing,Jtextfield,我从1小时开始尝试,但无法从JPanel访问我的jtextField到Jpanel1。 我正在进行一个课程项目,在该项目中,我必须使用jlabel在JPanel中显示登录用户的名称,但我无法从jpanel1访问JPanel中的jTextField。 我使用它使我的JTextField1成为公共静态,但仍然无法捕获值 我使用这段代码从JPanel1中的JPanel获取值。我正在做的是在JPanel1中创建一个JPanel对象,然后尝试获取该值 LoginPanel s = new LoginPa
LoginPanel s = new LoginPanel();
String sc=s.jTextField1.getText();
this.jLabel3.setText(sc);
import java.awt.Component;
import java.awt.event.ActionEvent;
import javax.swing.*;
public class TwoPanels extends JPanel {
private MyPanel1 panel1 = new MyPanel1();
private MyPanel2 panel2 = new MyPanel2();
public TwoPanels() {
add(panel2);
add(new JButton(new AbstractAction("Get Name") {
@Override
public void actionPerformed(ActionEvent arg0) {
Component parent = TwoPanels.this;
String title = "Enter Name";
int messageType = JOptionPane.PLAIN_MESSAGE;
int optionType = JOptionPane.OK_CANCEL_OPTION;
int result = JOptionPane.showConfirmDialog(parent, panel1, title, optionType, messageType);
if (result == JOptionPane.OK_OPTION) {
String name = panel1.getNameText();
panel2.setNameText(name);
}
}
}));
}
private static void createAndShowGui() {
TwoPanels mainPanel = new TwoPanels();
JFrame frame = new JFrame("TwoPanels");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(mainPanel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGui();
}
});
}
}
class MyPanel1 extends JPanel {
private JTextField nameField = new JTextField(10);
public MyPanel1() {
add(new JLabel("Name:"));
add(nameField);
}
public String getNameText() {
return nameField.getText();
}
}
class MyPanel2 extends JPanel {
private JTextField nameField = new JTextField(10);
public MyPanel2() {
nameField.setFocusable(false);
nameField.setEditable(false);
add(new JLabel("Name:"));
add(nameField);
}
public void setNameText(String text) {
nameField.setText(text);
}
}
你能给我看一下完整的代码吗?这样我就可以帮你了?