TextField передача

315
11 июля 2017, 19:37

Есть 3 файла

public class Main {
    public static void main(String[] args) {
        MyWindow form = new MyWindow();
    }
}

Это первый которым я вывожу визуальную часть

public class MyWindow extends JFrame {
    JTextField firstField;
    JTextField secondField;
    public MyWindow() {
        setTitle("Хер знает что");
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        // Настраиваем первую горизонтальную панель (для ввода певого)
        Box box1 = Box.createHorizontalBox();
        JLabel firstLabel = new JLabel("Первый:");
        firstField = new JTextField(15);
        box1.add(firstLabel);
        box1.add(Box.createHorizontalStrut(36));
        box1.add(firstField);
// Настраиваем вторую горизонтальную панель (для ввода второго)
        Box box2 = Box.createHorizontalBox();
        JLabel secondLabel = new JLabel("Второй:");
        secondField = new JTextField(15);
        box2.add(secondLabel);
        box2.add(Box.createHorizontalStrut(36));
        box2.add(secondField);
// Настраиваем третью горизонтальную панель (с кнопками)
        Box box3 = Box.createHorizontalBox();
        JButton ok = new JButton("OK");
        JButton cancel = new JButton("Отмена");
        box3.add(Box.createHorizontalGlue());
        box3.add(ok);
        box3.add(Box.createHorizontalStrut(12));
        box3.add(cancel);
        cancel.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                System.exit(0);
            }
        });
        Box box4 = Box.createHorizontalBox();
// Уточняем размеры компонентов
        firstLabel.setPreferredSize(secondLabel.getPreferredSize());
// Размещаем три горизонтальные панели на одной вертикальной
        Box mainBox = Box.createVerticalBox();
        mainBox.setBorder(new EmptyBorder(12, 12, 12, 12));
        mainBox.add(box1);
        mainBox.add(Box.createVerticalStrut(15));
        mainBox.add(box2);
        mainBox.add(Box.createVerticalStrut(12));
        mainBox.add(box3);
        mainBox.add(Box.createVerticalStrut(12));
        mainBox.add(box4);
        setContentPane(mainBox);
        pack();
        setResizable(false);
        setVisible(true);
    }
}

Вот визуальная часть и есть еще одна в которую мне надо передавать значения из firstField и secondField

public class test extends JPanel {
    public static void main(String[] args) {
        Scanner one = new Scanner(System.in);
        System.out.println("Введите количество элементов первого массива");
        int perv = one.nextInt();
        System.out.println("Введите количество второго массива");
        int two = one.nextInt();
        int[] mas = new int[perv];
        int[] mas2 = new int[two];
        Random rand = new Random();
        for (int i = 0; i < mas.length; i++) {
            mas[i] = rand.nextInt(100 + 1); 
            System.out.print(mas[i] + " ; ");
        }
        double average = 0;
        if (mas.length > 0)
        {
            double sum = 0;
            for (int j = 0; j < mas.length; j++) {
                sum += mas[j];
            }
            average = sum / mas.length;
        }
        System.out.println("Средне арифметическое: " + average);
        System.out.println();
            for (int g = 0; g < mas2.length; g++) {
                mas2[g] = rand.nextInt(100 + 1); 
                System.out.print(mas2[g] + " ; ");
            }
    }
}

Мне надо что бы эти значения передавались в первый и второй массивы которые генерируются рандомно

Answer 1

Начать с того, что у вас в двух класса методы main.
Классы называют с большой буквы, поэтому Test.

public class Test extends JPanel{
    private MyWindow mw;
    public Test(MyWindow mw){
        this.mw = mw;
    }
}

В class MyWindow нужно создать экземпляр класса Test и передать ему в параметр сам класс MyWindow:

public class MyWindow extends JFrame {
    JTextField firstField;
    JTextField secondField;
    public MyWindow() {
        Test t = new Test(this);
        ...
    }
}

Теперь в Test можно создавать методы, в которых через переменную t обращаться к тексту полей firstField и secondField через .getText().

t.firstField.setText(t.firstfield.getText()+" "+Double.toString(average));
READ ALSO
как распарсить header в android java

как распарсить header в android java

есть вот такой стринг в котрый я поместил header String header = httpURLConnection2getHeaderFields()

352
Как создать обертку на java для python?

Как создать обертку на java для python?

Есть система на python, надо, чтобы она запускалась из-под JSPМне нужно написать обертку для этой системы, чтобы ее можно было собрать в java-приложение...

239