Я уже не знаю, откуда мне просить помощи. (Java, Swing) / языки программирования :: программирование :: пидоры помогите (реактор помоги) :: java :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

java программирование geek пидоры помогите языки программирования 

Я уже не знаю, откуда мне просить помощи. (Java, Swing)

Коротко - как заставить JScrollPane работать с JPanel в NULL layout?

Длинно - Еcть JPanel, в который вставляются JLabel, количество которых зависит от массива. Вот код в картинке: (можно даже увидеть оставшиеся комменты от попыток запихнуть это в scrollPane)

public void actionPerformedCActionEvent e) {
try {
ReadFile file = new ReadFile(patb);
String[] aryLines = file.OpenFileQ;
JFrame frame2 = new JFrameC title "Table");
JPanel panel = new JPanelO;
// JScrollPane scrollPane = new JScrollPane(panel);
frame2.SetSize( width: 600, height: 300);

Как видно - долго бедный фрейм и панелька не продержатся, и туда было бы логично вписать скроллбар, но по ускользающей от меня причине, у меня не получается впихнуть туда JScrollPane, как бы я не старался. Я перерыл весь Стак, Кодранч и даже официальные доки от Оракла. Даже поменяв лейаут, нифига не происходит, генерируется пустое окно. Я уже три дня над этим голову ломаю. Полный текст кода скину в комментарий. (в скрин не поместилось)
КУПОН
НА 1 помощь,java,программирование,geek,Прикольные гаджеты. Научный, инженерный и  айтишный юмор,пидоры помогите,реактор помоги,языки программирования
Подробнее
КУПОН НА 1 помощь
java,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,пидоры помогите,реактор помоги,языки программирования
Еще на тему
Развернуть
Вот код:

public void actionPerformed(ActionEvent e) {
try {
ReadFile file = new ReadFile(path);
String[] aryLines = file.OpenFile();

JFrame frame2 = new JFrame("Table");
JPanel panel = new JPanel();

// JScrollPane scrollPane = new JScrollPane(panel);

frame2.setSize(600, 300);
panel.setBounds(0, 0, 600, 600);

panel.setLayout(null);
//scrollPane.setPreferredSize(new Dimension(600,300));

for (counter = aryLines.length; counter > 0; counter-=6) {



JLabel jLabel1 = new JLabel("Имя: "+ aryLines[counter-6]);
JLabel jLabel2 = new JLabel("Деталь: " +aryLines[counter-5]);
JLabel jLabel3 = new JLabel("Дата прибытия заказа: " + aryLines[counter-3]);
JLabel jLabel4 = new JLabel("Дата заказа детали: " + aryLines[counter-4]);

JCheckBox jCheckBox = new JCheckBox();
JTextArea area = new JTextArea(Integer.toString(counter));

jLabel1.setBounds(15, 5 + (counter - 6)*30, 300, 20);
jLabel2.setBounds(15,35 + (counter - 6)*30, 300, 20);
jLabel3.setBounds(15, 70 + (counter - 6)*30, 300, 20);
jLabel4.setBounds(15, 100 + (counter - 6)*30,300,20);

//jLabel.setBackground(Color.BLACK);
panel.add(jLabel1); panel.add(jLabel2); panel.add(jLabel3); panel.add(jLabel4);

//panel.add(jCheckBox);

}
// scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
//scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
// frame2.getContentPane().add(scrollPane);
frame2.add(panel);
//panel.add(scrollPane);
frame2.setLayout(null);
frame2.setVisible(true);
Kon_Boi Kon_Boi 02.03.202114:10 ответить ссылка -0.7
JFrame frame2 = new JFrame("Table");
frame2.setSize(600, 300);
JPanel panel = new JPanel();
panel.setBounds(0, 0, 600, 600);
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));

int counter;
for (counter = aryLines.length; counter > 0; counter -= 6) {

JPanel temp = new JPanel();
temp.setLayout(null);

JLabel jLabel1 = new JLabel("Имя: " + aryLines[counter - 6]);
JLabel jLabel2 = new JLabel("Деталь: " + aryLines[counter - 5]);
JLabel jLabel3 = new JLabel("Дата прибытия заказа: " + aryLines[counter - 3]);
JLabel jLabel4 = new JLabel("Дата заказа детали: " + aryLines[counter - 4]);

JCheckBox jCheckBox = new JCheckBox();
JTextArea area = new JTextArea(Integer.toString(counter));

jLabel1.setBounds(15, 5, 300, 20);
jLabel2.setBounds(15,35, 300, 20);
jLabel3.setBounds(15, 70, 300, 20);
jLabel4.setBounds(15, 100,300,20);
jCheckBox.setBounds(15, 130,300,20);

temp.add(jLabel1);
temp.add(jLabel2);
temp.add(jLabel3);
temp.add(jLabel4);
temp.add(jCheckBox);
temp.setSize(300, 150);
temp.setPreferredSize(new Dimension(300, 150));
panel.add(temp);
}
panel.revalidate();
JScrollPane scrollPane = new JScrollPane(panel);
scrollPane.setPreferredSize(new Dimension(600,300));
scrollPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
frame2.setLayout(new BorderLayout(3,3));
frame2.add(scrollPane, BorderLayout.CENTER);
frame2.setVisible(true);
По гроб обязан буду.
И, пожалуйста, кто-нибудь может объяснить мне в чём проблема NULL layout? Он же самый простой в настройке и использовании. Не говоря уже о попиксельном расположении элементов?
Kon_Boi Kon_Boi 02.03.202114:13 ответить ссылка -0.5
А по-хорошему на каждый вью сложнее кнопки - нужно свой клас писать
Пиздай на стаоверфлоу, нашел где задавать вопрос, а вообще пиздуй учиться хотябы чистый js
AndyTitan AndyTitan 02.03.202114:17 ответить ссылка -4.2
Хачем мне ваш JS, когда есть Джава? Плюс, эта единственная проблема, которую я не смог решить на все полтысячи строк кода.
Kon_Boi Kon_Boi 02.03.202114:20 ответить ссылка -0.3
Зачем вам ваш Java и Swing, когда есть C# и Windows Forms
Я пробовал на С# делать. Но что-то не "кликнуло", так сказать. Но когда я попробовал джаву... Ух бля.
Я прочитал твой коммент ниже, видать каждому свое, мне лично winForms показался до безобразия простым и удобным, я даже за WPF или UWP всё никак сесть не могу, потому что не хочу ебаться с языком разметки XAML, "формы" развратили меня своей простотой
А ведь ещё есть AvaloniaUI
Ух ты, на свинге кто-то пишет.
JohnnyZ JohnnyZ 02.03.202114:33 ответить ссылка 1.6
А что не так со свингом?
Просто десктоп на джаве никто не пишет. Как минимум из-за того, что для запуска она обязательно требует JRE.
Я пока не встречал компьютера с отсутствующим JRE. O_o Даже в глухой деревне на компах он присутствует.
Ну вот так повелось, что на джаве пишут либо сервера, либо под андроид, либо майнкрафт.
Я пробовал писать десктоп на С#, но нашёл свинг куда более удобным. Даже без билдера. :/
вот ток майнкрафт переписали на кресты, поняв что ну ее эту жабу )
Pinguin Pinguin 02.03.202116:00 ответить ссылка -0.1
1. с одного акка создаем топик на стековерфлов
2. с другого акка пишем заранее ложный ответ
3. идем заварить кофе и ждем, пока второму аккаунту в подробностях объяснят, где он не прав
PROFIT

простомимокрокодил
Здравствуйте, это канал про аниме? (с)
1. OpenFile() - все методы с маленькой буквы
2. Было бы неплохо создать отдельный класс для описания детали, и возвращать коллекцию с ним, а не массив строк.
3. Используй коллекции, а не массивы.
4. for (counter = aryLines.length; counter > 0; counter -= 6) Почему counter объявлен хз где? Почему counter начинается с длины массива, когда его последний индекс будет равен aryLines.length-1? Индексы считаются с 0, length массива с 1.
5. Почему бы не использовать 1 JTable, вместо кучи JLabel-ов?
1) Я ещё не особо шарю в стандартах наименований. Грешок, да.
2) Грешен, каюсь. Было лень, ради одной кнопки создавать класс
3) Будем
4) Я бы сказал легаси, бо сама переменная куда старше кнопки. Потому что необходима печать элементов в обратном порядке. Разница между номером и "длинной" учтена.
5) Потому что я - нубас. :(
Учить Swing не особо полезно, технология уже не в моде. И да, будешь ходить на собеседования про Swing не упоминай - засмеют.
SmallKino SmallKino 02.03.202122:18 ответить ссылка -0.1
Самый полезный комент из всех! Лучше бы взялся за spring boot 2, spring в целом. Всякие hibernate, ну и модные spark, hadoop. А свинг - он мертв, тут уже проще делфи раскопать...
Не проще. Swing сам Oracle заменил на JavaFx уже давно. Сейчас и JavaFX выкинули из стандартной поставки JDK.

Swing был хорош, но его время уже прошло.
rsbn rsbn 16.03.202113:35 ответить ссылка 0.9
Кстати, вопрос, если можно: в JavaFx, насколько мне известно, до сих пор не реализован весь функционал Свинга Так вот - А в достаточной ли степени реализовано то, что есть?
Более чем достаточно.
Есть ControlsFX - библиотека с дополнениями.
Там с другом даже суть: в Oracle не идиоты сидели, когда придумывали JavaFx - писать на нём, а самое главное дополнять и поддерживать, реально проще. Swing умер ещё тогда, когда взялись за разработку его заметы, т.е. JavaFX.
rsbn rsbn 31.03.202112:48 ответить ссылка 0.9
Уж и не надеялся, что ты ответишь :D. Спасибо. Надо будет тогда за FX взяться... Были б проекты :/
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
	д 1	^ /î
£		Г ^ ИСПОЛЬЗОВАТЬ ТОЛЬКО В СЛУЧАЕ КРАЙНЕЙ НЕОБХОДИМОСТИ КУПОН
НА 1 помощь КУПОН
НА 1 помощь