• Register
Forum Thread
  Posts  
Error in the source code, I can not solve it myself (Forums : Tech Support : 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?
And who knows how to do a full code analysis? Is there any service?

// Вначале нужно импортировать эти пакеты
 
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,
Maybe folder with images is not declared as global variable properly,
tray with full image address, instead of image = new ImageIcon(getClass().getResource("images/Image1.jpg"));
-tray with accurate line, example:
image = new ImageIcon(getClass().getResource("D:/MyGame/cockmother/images/Image1.jpg"));

Reply to thread
click to sign in and post

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.