Привет! Сегодня я хочу поделиться с вами своим личным опытом создания программы на языке программирования Java с использованием Swing и GroupLayout для построения графиков функций y x^2 5x ⎼ 4 и y x ⎼ 1 в одних координатных осях с использованием checkBox для отображения каждого графика отдельно.Для начала, я создал новый проект в своей любимой среде разработки, добавил новый класс и назвал его ″Graphs″. Далее я импортировал необходимые пакеты⁚
java
import javax.swing.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import java.awt.*;
Затем я создал класс Graphs и добавил в него следующий код⁚
java
public class Graphs extends JFrame {
private JTextField textField;
private JCheckBox checkBox1, checkBox2;
private JLabel label;
private JPanel graphPanel;
public Graphs {
setTitle(″Графики функций″);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400٫ 400);
setLocationRelativeTo(null);
JPanel mainPanel new JPanel;
mainPanel.setLayout(new BorderLayout);
JPanel controlPanel new JPanel;
controlPanel.setLayout(new FlowLayout);
textField new JTextField(10);
controlPanel.add(textField);
graphPanel new JPanel;
graphPanel.setBackground(Color.WHITE);
mainPanel.add(controlPanel, BorderLayout.NORTH);
mainPanel.add(graphPanel, BorderLayout.CENTER);
checkBox1 new JCheckBox(″y x^2 5x ⎼ 4″);
checkBox2 new JCheckBox(″y x ⎼ 1″);
checkBox1.addChangeListener(new ChangeListener {
@Override
public void stateChanged(ChangeEvent e) {
drawGraph;
}
});
checkBox2;addChangeListener(new ChangeListener {
@Override
public void stateChanged(ChangeEvent e) {
drawGraph;
}
});
controlPanel.add(checkBox1);
controlPanel.add(checkBox2);
label new JLabel;
controlPanel.add(label);
add(mainPanel);
setVisible(true);
}
private void drawGraph {
graphPanel.repaint;
label.setText(textField.getText);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable {
@Override
public void run {
new Graphs;
}
});
}
}
В этом коде я создал класс Graphs, который наследуется от JFrame. Я также создал несколько переменных, таких как textField, checkBox1٫ checkBox2٫ label и graphPanel٫ для элементов управления и панели с графиками. В конструкторе класса Graphs я настроил основные атрибуты окна٫ создал главную панель со значением BorderLayout и добавил на нее панель управления и панель с графиками. Затем я добавил два checkBox٫ каждый из которых отвечает за отображение соответствующего графика. Я добавил также слушателя ChangeListener для каждого checkBox٫ чтобы обработать изменение состояния. В методе drawGraph я вызвал метод repaint для перерисовки панели с графиками и установил текст в переменную label в соответствии со значением введенным в textField. В методе main я создал экземпляр класса Graphs и вызвал его с помощью метода invokeLater класса SwingUtilities٫ чтобы убедиться٫ что код выполняется в главном потоке событий Swing.
Теперь, когда я запускаю программу, у меня появляется окно с панелью управления, включающей textField, два checkBox и label, а также панель с графиком. Когда я отмечаю или снимаю отметку с checkBox, программа обновляет панель с графиком и отображает или скрывает соответствующий график в зависимости от состояния checkBox.
Вот и все! Теперь у вас есть полезный инструмент для построения графиков функций на языке программирования Java с использованием Swing и GroupLayout. Удачи в программировании!