for example, using the betweens Classes constructor, or (for a debugging task) extract the value from the desired JComponent (s) using getParent()
import java.awt.*; import javax.swing.*; public class CopyTextFrame extends JFrame { private static final long serialVersionUID = 1L; private CopyTextNorthPanel northPanel; private CopyTextCenterPanel centerPanel; private CopyTextSouthPanel southPanel; public void makeUI() { northPanel = new CopyTextNorthPanel(); centerPanel = new CopyTextCenterPanel(); southPanel = new CopyTextSouthPanel(); northPanel.setName("northPanel"); centerPanel.setName("centerPanel"); southPanel.setName("southPanel"); centerPanel = new CopyTextCenterPanel(); centerPanel.setPreferredSize(new Dimension(300, 40)); southPanel = new CopyTextSouthPanel(); southPanel.setSourceTextField(northPanel.desText); northPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1)); centerPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1)); southPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1)); setLayout(new BorderLayout(5, 5)); setDefaultCloseOperation(EXIT_ON_CLOSE); add(northPanel, BorderLayout.NORTH); add(centerPanel, BorderLayout.CENTER); add(southPanel, BorderLayout.SOUTH); pack(); setVisible(true); } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { @Override public void run() { new CopyTextFrame().makeUI(); } }); } }
+
import javax.swing.*; public class CopyTextCenterPanel extends JPanel { private static final long serialVersionUID = 1L; public CopyTextCenterPanel() { } }
+
import java.awt.*; import javax.swing.*; public class CopyTextNorthPanel extends JPanel { private static final long serialVersionUID = 1L; public JTextField desText; public CopyTextNorthPanel() { desText = new JTextField("Welcome World"); desText.setFont(new Font("Serif", Font.BOLD, 20)); desText.setPreferredSize(new Dimension(300, 25)); desText.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1)); desText.addComponentListener(null); desText.setName("desText"); add(desText); } public JTextField getDesText() { return desText; } }
+
import java.awt.*; import java.awt.event.ActionEvent; import javax.swing.*; public class CopyTextSouthPanel extends JPanel { private static final long serialVersionUID = 1L; private JTextField firstText; private JButton copyButton; private JTextField sourceTextField; private String lds = ""; public CopyTextSouthPanel() { firstText = new JTextField("Desired TextField"); firstText.setMinimumSize(new Dimension(300, 25)); firstText.setPreferredSize(new Dimension(300, 25)); firstText.setMaximumSize(new Dimension(300, 25)); copyButton = new JButton("Copy text from JTextFields"); copyButton.setMinimumSize(new Dimension(200, 25)); copyButton.setPreferredSize(new Dimension(200, 25)); copyButton.setMaximumSize(new Dimension(200, 25)); copyButton.addActionListener(new java.awt.event.ActionListener() { @Override public void actionPerformed(java.awt.event.ActionEvent evt) { copyButtonActionPerformed(evt); } private void copyButtonActionPerformed(ActionEvent evt) { System.out.print("Button pressed" + "\n"); Component[] comp = CopyTextSouthPanel.this.getParent().getComponents(); int nO = comp.length; for (int i = 0; i < comp.length; ++i) { if (comp[i] instanceof JPanel) { String name = ((JPanel) comp[i]).getName(); if (name.equals("northPanel")) { JPanel panel = (JPanel) comp[i]; Component[] comp1 = panel.getComponents(); int nO1 = comp1.length; for (int ii = 0; ii < comp1.length; ++ii) { if (comp1[ii] instanceof JTextField) { String name1 = ((JTextField) comp1[ii]).getName(); if (!(name1 == null)) { if (name1.equals("desText")) { JTextField text = (JTextField) comp1[ii]; String str = text.getText(); firstText.setText(str); System.out.print("set value -> " + str + "\n"); break; } } } } break; } } } lds = sourceTextField.getText(); if (lds != null || (!(lds.isEmpty()))) { firstText.setText(" Msg -> " + lds); } } }); add(firstText, BorderLayout.EAST); add(copyButton, BorderLayout.WEST); } public void setSourceTextField(JTextField source) { this.sourceTextField = source; } }
mKorbel
source share