ЗЫ. для ревнителей всего правильного, пожалуйста не кричите сразу про говнокод, при на приведенном примере внесите свои правки. Специально для этого есть возможность добавить комментарии к статье
package pkg_transfer;
/** * * @author Akarak */ public class Parents extends javax.swing.JFrame {
static String regard, firstName; // Для панели "По компонентам" static Integer on = 0; // Признак работы с панелью "По компонентам" static String array[]; // Для панели "Массивом" static Integer arr = 0; // Признак работы с панелью "Массивом" Integer i = 1; // Признак создания формы JFrame
/** Creates new form Parents */ public Parents() { initComponents(); }
@SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {
pnArray = new javax.swing.JPanel(); tfSurname = new javax.swing.JTextField(); btEditArray = new javax.swing.JButton(); tfBye = new javax.swing.JTextField(); pnOn = new javax.swing.JPanel(); tfRegard = new javax.swing.JTextField(); tfFirstName = new javax.swing.JTextField(); btEditOne = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); setTitle("Передача из JFrame в JDialog и обратно"); addWindowListener(new java.awt.event.WindowAdapter() { public void windowActivated(java.awt.event.WindowEvent evt) { formWindowActivated(evt); } });
pnArray.setBorder(javax.swing.BorderFactory.createTitledBorder("Массивом"));
tfSurname.setText("Фамилия");
btEditArray.setText("Редактировать"); btEditArray.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btEditArrayActionPerformed(evt); } });
tfBye.setText("Пока");
javax.swing.GroupLayout pnArrayLayout = new javax.swing.GroupLayout(pnArray); pnArray.setLayout(pnArrayLayout); pnArrayLayout.setHorizontalGroup( pnArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnArrayLayout.createSequentialGroup() .addComponent(tfBye, javax.swing.GroupLayout.DEFAULT_SIZE, 157, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(tfSurname, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(20, 20, 20) .addComponent(btEditArray) .addContainerGap()) );
pnArrayLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {tfBye, tfSurname});
pnArrayLayout.setVerticalGroup( pnArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnArrayLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btEditArray) .addComponent(tfSurname, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(tfBye, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) );
pnOn.setBorder(javax.swing.BorderFactory.createTitledBorder("По компонентам"));
tfRegard.setText("Привет");
tfFirstName.setText("Имя");
btEditOne.setText("Редактировать"); btEditOne.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btEditOneActionPerformed(evt); } });
javax.swing.GroupLayout pnOnLayout = new javax.swing.GroupLayout(pnOn); pnOn.setLayout(pnOnLayout); pnOnLayout.setHorizontalGroup( pnOnLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, pnOnLayout.createSequentialGroup() .addComponent(tfRegard, javax.swing.GroupLayout.DEFAULT_SIZE, 157, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(tfFirstName, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(18, 18, 18) .addComponent(btEditOne)) );
pnOnLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {tfFirstName, tfRegard});
pnOnLayout.setVerticalGroup( pnOnLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(pnOnLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(tfRegard, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(tfFirstName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(btEditOne)) );
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(pnArray, javax.swing.GroupLayout.Alignment.LEADING, 0, 465, Short.MAX_VALUE) .addComponent(pnOn, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(pnOn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(pnArray, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) );
pack(); }// </editor-fold>
private void btEditOneActionPerformed(java.awt.event.ActionEvent evt) { // Присваиваем значения regard = tfRegard.getText(); firstName = tfFirstName.getText(); // Вызываем конструктор DescendantsOne dlgOne = new DescendantsOne(this, true); // Делаем видимой dlgOne.setVisible(true); }
private void btEditArrayActionPerformed(java.awt.event.ActionEvent evt) { // Присваиваем значения String array_local[] = {tfBye.getText(), tfSurname.getText()}; array = array_local; // Вызываем конструктор DescendantsArray dlgArray = new DescendantsArray(this, true); // Делаем видимой dlgArray.setVisible(true); }
private void formWindowActivated(java.awt.event.WindowEvent evt) { // Обработка полученных данных if (i != 1) { // Проверяем, что событие происходит не при создании формы JFrame if (on == 1) { // Работа с панелью "По компонентам" tfRegard.setText(regard); tfFirstName.setText(firstName); } if (arr == 1) { // Работа с панелью "Массивом" tfBye.setText(array[0]); tfSurname.setText(array[1]); } } else { i = 2; } }
/** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() {
@Override public void run() { new Parents().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton btEditArray; private javax.swing.JButton btEditOne; private javax.swing.JPanel pnArray; private javax.swing.JPanel pnOn; private javax.swing.JTextField tfBye; private javax.swing.JTextField tfFirstName; private javax.swing.JTextField tfRegard; private javax.swing.JTextField tfSurname; // End of variables declaration }
package pkg_transfer;
/** * * @author Akarak */ public class DescendantsOne extends javax.swing.JDialog {
/** Creates new form DescendantsOne */ public DescendantsOne(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); // Получаем значени tfRegardOn.setText(Parents.regard); tfFirstNameOn.setText(Parents.firstName); }
@SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {
btOkOn = new javax.swing.JButton(); btCancelOn = new javax.swing.JButton(); tfRegardOn = new javax.swing.JTextField(); tfFirstNameOn = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
btOkOn.setText("Принять"); btOkOn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btOkOnActionPerformed(evt); } });
btCancelOn.setText("Отменить"); btCancelOn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btCancelOnActionPerformed(evt); } });
tfRegardOn.setText("Пусто");
tfFirstNameOn.setText("Пусто");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(tfRegardOn) .addComponent(btOkOn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(tfFirstNameOn) .addComponent(btCancelOn, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(tfRegardOn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(tfFirstNameOn, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btOkOn) .addComponent(btCancelOn)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) );
pack(); }// </editor-fold>
private void btOkOnActionPerformed(java.awt.event.ActionEvent evt) { // Присваиваем значения Parents.regard = tfRegardOn.getText(); Parents.firstName = tfFirstNameOn.getText(); Parents.on = 1; // Ставим признак работы с панелью "По компонентам" Parents.arr = 0; dispose(); // Закрываем JDialog }
private void btCancelOnActionPerformed(java.awt.event.ActionEvent evt) { dispose(); // Закрываем JDialog }
/** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() {
@Override public void run() { DescendantsOne dialog = new DescendantsOne(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton btCancelOn; private javax.swing.JButton btOkOn; private javax.swing.JTextField tfFirstNameOn; private javax.swing.JTextField tfRegardOn; // End of variables declaration }
package pkg_transfer;
/** * * @author Akarak */ public class DescendantsArray extends javax.swing.JDialog {
/** Creates new form DescendantsOne */ public DescendantsArray(java.awt.Frame parent, boolean modal) { super(parent, modal); initComponents(); // Получаем значени // Поскольку при закрытии JDialog используется dispose(), то этот вариант нам подходит tfByeArr.setText(Parents.array[0]); tfFirstNameArr.setText(Parents.array[1]); }
@SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() {
btOkArr = new javax.swing.JButton(); btCancelArr = new javax.swing.JButton(); tfByeArr = new javax.swing.JTextField(); tfFirstNameArr = new javax.swing.JTextField();
setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
btOkArr.setText("Принять"); btOkArr.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btOkArrActionPerformed(evt); } });
btCancelArr.setText("Отменить"); btCancelArr.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btCancelArrActionPerformed(evt); } });
tfByeArr.setText("Пусто");
tfFirstNameArr.setText("Пусто");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(tfByeArr, javax.swing.GroupLayout.Alignment.LEADING) .addComponent(btOkArr, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(tfFirstNameArr) .addComponent(btCancelArr, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(tfByeArr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(tfFirstNameArr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btOkArr) .addComponent(btCancelArr)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) );
pack(); }// </editor-fold>
private void btOkArrActionPerformed(java.awt.event.ActionEvent evt) { // Присваиваем значения Parents.array[0] = tfByeArr.getText(); Parents.array[1] = tfFirstNameArr.getText(); Parents.on = 0; Parents.arr = 1; // Ставим признак работы с панелью "Массивом" dispose(); // Закрываем JDialog }
private void btCancelArrActionPerformed(java.awt.event.ActionEvent evt) { dispose(); // Закрываем JDialog }
/** * @param args the command line arguments */ public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() {
@Override public void run() { DescendantsArray dialog = new DescendantsArray(new javax.swing.JFrame(), true); dialog.addWindowListener(new java.awt.event.WindowAdapter() {
@Override public void windowClosing(java.awt.event.WindowEvent e) { System.exit(0); } }); dialog.setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton btCancelArr; private javax.swing.JButton btOkArr; private javax.swing.JTextField tfByeArr; private javax.swing.JTextField tfFirstNameArr; // End of variables declaration }
|