Posts | ||
---|---|---|
Error in the source code, I can not solve it myself | Locked | |
Thread Options | ||
Nov 23 2022 Anchor | ||
I wrote the code for the application, at the moment I don’t understand the problem myself. But when the program starts, the picture is not displayed. How to fix this error? // Вначале нужно импортировать эти пакеты import java.awt.CardLayout; import java.awt.Color; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.*; // Затем создайте новый класс с главной функцией. Здесь я ее назвал cardlayout @SuppressWarnings("serial") public class cardlayout extends JFrame implements MouseListener { // Вам нужно объявить вещи, которые вам понадобятся public static CardLayout card = new CardLayout(); // Эта карта - вариант layout (y) JLabel displayField; ImageIcon image; public static JPanel c JPanel(); public static JPanel panel1 = new JPanel(); public static JPanel panel2 = new JPanel(); public static JPanel panel3 = new JPanel(); public static JPanel panel4 = new JPanel(); private static JButton bt[] = new JButton[4]; /* Это простой текст для каждой кнопки в этих панелях и он поможет понять, в какой панели вы находитесь */ private String[] text = {"РИС 1", "РИС 2", "РИС 3", "РИС 4"}; // Это конструктор public cardlayout() { /* Установить layout null для всех панелей и мы устанавливаем опцию cardlayout в layout контейнера */ container.setLayout(card); panel1.setLayout(null); panel2.setLayout(null); panel3.setLayout(null); panel4.setLayout(null); // Здесь мы инициализируем 4 кнопки for (int i = 0; i < bt.length; i++) { bt[i]= new JButton("" + text[i]); bt[i].setBounds(100, 150, 100, 40); bt[i].addMouseListener(this); // Я использовал mouselistener, вы также можете использовать actionlistener } // Я добавил кнопку "panel[i]" во все панели, кроме панели контейнера panel1.add(bt[0]); panel2.add(bt[1]); panel3.add(bt[2]); panel4.add(bt[3]); // Задаем цвет для каждой панели panel1.setBackground(Color.red); panel2.setBackground(Color.blue); panel3.setBackground(Color.DARK_GRAY); panel4.setBackground(Color.green); image = new ImageIcon(getClass().getResource("images/Image1.jpg")); displayField = new JLabel(image); panel1.add(displayField); // setLayout(null); // Нельзя устанавливать layout в кадр setSize(500, 500); // Это размер кадра setLocationRelativeTo(null); // Это расположение setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Это опция закрытия /* Мы добавляем эти панели в контейнер и присваиваем каждой панели свой номер */ container.add(panel1, "2"); container.add(panel2, "3"); container.add(panel3, "4"); container.add(panel4, "5"); // Это покажет тебе первую панель ("2"), которую ты добавил в этот контейнер ("1") card.show(container, "1"); } public static void main(String[] args) { cardlayout c = new cardlayout(); c.add(container); // Здесь мы просто добавляем этот контейнер в кадр c.setVisible(true); } // Здесь нам просто нужен метод mouseclicked override public void mouseClicked(MouseEvent e) { for (int i = 0; i < bt.length; i++) { if (e.getSource() == bt[0]) { // Панель 1 card.show(container, "" + 3); // Переходим в новую панель } if (e.getSource() == bt[1]) { // Панель 2 card.show(container, "" + 4); // Переходим в новую панель } if (e.getSource() == bt[2]) { // Панель 3 card.show(container, "" + 5); // Переходим в новую панель } if (e.getSource() == bt[3]) { // Панель 4 card.show(container, "" + 2); // Переходим в новую панель } } } override public void mousePressed(MouseEvent e) { } override public void mouseReleased(MouseEvent e) { } override public void mouseEntered(MouseEvent e) { } override public void mouseExited(MouseEvent e) { } } |
||
Nov 24 2022 Anchor | ||
-I don`t know man, |
Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.