Есть 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] + " ; ");
}
}
}
Мне надо что бы эти значения передавались в первый и второй массивы которые генерируются рандомно
Начать с того, что у вас в двух класса методы 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));
Сборка персонального компьютера от Artline: умный выбор для современных пользователей