Сделать, чтобы на кнопку можно было нажать только один раз JFRAME
package org.example;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
public static JButton jButton_dowhload = new JButton("Dowhload PDF");
public static JButton jButton_next = new JButton("Next");
public static JButton jButton_back = new JButton("Back");
public static JFrame jFrame = new JFrame();
public static void main(String[] args) {
frame();
}
public static void frame(){
jFrame.setSize(500,500);
jFrame.setResizable(false);
jFrame.setLocationRelativeTo(null);
JPanel jPanel = new JPanel();
jPanel.setLayout(new BoxLayout(jPanel, BoxLayout.X_AXIS));
JButton jButton = new JButton("Компьютерная литература");
jButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
ImageIcon imageIcon = new ImageIcon("E:\\Project_Java\\Library_java\\untitled\\src\\image\\018ee4da-770c-70dc-ab06-04a274c701a8.jpg");
JFrame jFrame1 = new JFrame();
JLabel jLabel = new JLabel("ХАКИНГ на примерах. Уязвимости, взлом, защита",imageIcon,FlowLayout.LEFT);
JPanel jPanel1 = new JPanel();
jFrame1.setSize(500,500);
jFrame1.setResizable(false);
jFrame1.setLocationRelativeTo(null);
jPanel1.add(jButton_dowhload);
jPanel1.add(jButton_next);
jPanel1.add(jButton_back);
jPanel1.add(jLabel);
jFrame1.add(jPanel1);
jFrame1.setVisible(true);
}
});
jFrame.add(jPanel);
jPanel.add(jButton);
jFrame.setVisible(true);
}
}
Ответы (1 шт):
Автор решения: AP-JavaCod
→ Ссылка
При нажатии на кнопку нужно вызвать у этой кнопки метод jButton.setEnabled(false);
Улучшение кода для Java 8 и выше интервей ActionListener
является функционалным поэтому можно использовать лямбда вырожение
jButton.addActionListener( _ ->{
ImageIcon imageIcon = new ImageIcon("E:\\Project_Java\\Library_java\\untitled\\src\\image\\018ee4da-770c-70dc-ab06-04a274c701a8.jpg");
JFrame jFrame1 = new JFrame();
JLabel jLabel = new JLabel("ХАКИНГ на примерах. Уязвимости, взлом, защита",imageIcon,FlowLayout.LEFT);
JPanel jPanel1 = new JPanel();
jFrame1.setSize(500,500);
jFrame1.setResizable(false);
jFrame1.setLocationRelativeTo(null);
jPanel1.add(jButton_dowhload);
jPanel1.add(jButton_next);
jPanel1.add(jButton_back);
jPanel1.add(jLabel);
jFrame1.add(jPanel1);
jFrame1.setVisible(true);
jButton.setEnabled(false); //делает кнопку неактивной
});
Функциональнй интервейс - это интерфейс в котором есть только один абстрактный метод.