| 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.