пишу программу которая рассчитает сопротивление резисторов подключенных параллельно
сейчас имею это и оно выводит две кнопки в центре
package sample;
import javax.swing.*;
public class Main {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
@Override
public void run() {
MainWindow mainWindow = new MainWindow();
}
});
}
}
package sample;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
public class MainWindow extends JFrame {
public MainWindow() throws HeadlessException{
setTitle("ВЫчисляшка сопротивления из кучи резисторов");
setSize(600, 400);
setLocation(300,200);
setVisible(true);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new FlowLayout());
//создаем панель с кнопками по grid табличный менеджер в пнели указана 1 строка и 2 колонки под кнопки
JPanel panel1 = new JPanel(new GridLayout(1,2,5,0));
panel1. add(new JButton("ОК"));
panel1. add(new JButton("Отмена"));
//добавляем панель
add(panel1);
}
}
у меня два вопроса: как пихать boxLayout и почему все везде создают панели, а у меня просто add(panel1); а должно быть что-то типо panel.add(button) ?
По поводу просто add - это добавление в форму.
Добавление BoxLayout
BoxLayout boxLayout = new BoxLayout( panel1, BoxLayout.X_AXIS );
panel1.setLayout( boxLayout );
BoxLayout
используют для построения елементов на каждом новом ряду. Он нам отлично подойдет для левой колонки (текстового поля и лейблов)
FlowLayout
).По сути у нас такое рассположение объектов:
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import java.awt.*;
public class SO {
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setTitle("Вычисляшка сопротивления из кучи резисторов");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(600, 400);
frame.getRootPane().setBorder(new EmptyBorder(15, 15, 15, 15));
frame.setVisible(true);
frame.setLayout(new GridLayout());
// Левая панель
JPanel left = new JPanel();
left.setLayout(new BoxLayout(left, BoxLayout.PAGE_AXIS));
// Центральная
JPanel mid = new JPanel();
mid.add(new JButton("Button"));
// Правая панель
JPanel right = new JPanel();
right.add(new JLabel("JLabel"));
JTextArea text = new JTextArea();
text.setMaximumSize(new Dimension(800, 50));
text.setLineWrap(true);
text.setAlignmentX(Component.LEFT_ALIGNMENT);
// Добавляю лейблы и выравниваю по левому краю
JLabel text2 = new JLabel("Text2");
JLabel text3 = new JLabel("Text3");
JLabel text4 = new JLabel("Text4");
text2.setAlignmentX(Component.LEFT_ALIGNMENT);
text3.setAlignmentX(Component.LEFT_ALIGNMENT);
text4.setAlignmentX(Component.LEFT_ALIGNMENT);
left.add(text);
left.add(text2);
left.add(text3);
left.add(text4);
frame.add(left);
frame.add(mid);
frame.add(right);
}
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите пожалуйста в приведенном коде левых верхний угол объекта JDialog помещен в центр экрана, мне необходимо, что бы в центре экрана был...
Прошу подсказать, не могу понять как как сделать реализацию интерфейса
Я прошу у вас совета, как правильно реализовать данный vertical timeline, такой как на картинке
Не происходит запись данных формы в БДНе могу понять почему