Я изо всех сил, чтобы сделать что-то я думаю, довольно просто:Создание формы с фоновым изображением (JLayeredPane)
Я хочу, чтобы создать форму (JTextField) с фоновым изображением. Чтобы форма не охватывала фоновое изображение, я использую JLayeredPane. Я пробовал разные вещи, ничего не работает: по какой-то причине я либо показываю только фон, либо только JTextField, но никогда и то, и другое. Моя цель состояла бы в том, чтобы иметь фоновое изображение, которое никогда не меняется, и просто используйте мои кнопки/текстовые поля поверх него.
package gestion;
import java.awt.*;
import javax.swing.*;
@SuppressWarnings("serial")
public class Main extends JFrame{
JLayeredPane layeredPane;
JPanel board;
JPanel background;
public Main(){
super("Test");
background = new JPanel();
layeredPane = new JLayeredPane();
board = new JPanel();
// Creating frame with LayeredPane
Dimension boardSize = new Dimension(1280, 1024);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setResizable(false);
this.setSize(boardSize.width, boardSize.height);
this.setVisible(true);
this.setLocationRelativeTo(null);
layeredPane.setPreferredSize(boardSize);
this.add(layeredPane);
// Add a background to the Layered Pane
JLabel picLabel = new JLabel(new ImageIcon("background.jpg"));
background.add(picLabel);
background.setPreferredSize(boardSize);
background.setBounds(0,0,boardSize.width, boardSize.height);
layeredPane.add(background, JLayeredPane.DEFAULT_LAYER);
// Add a JTextField
final JTextField jtf = new JTextField("Default Value");
Font police = new Font("Arial", Font.BOLD, 14);
jtf.setFont(police);
jtf.setPreferredSize(new Dimension(600, 800));
background.setBounds(0,0,boardSize.width, boardSize.height);
jtf.setForeground(Color.BLUE);
board.add(jtf);
layeredPane.add(board, JLayeredPane.PALETTE_LAYER);
}
public static void main(String[] args)
{
new Main();
}
}
только изображение, кажется, появляются, и по какой-то причине (Мой лучший выбор темной магии) JTextField не существует. Любые идеи или помощь будут очень благодарны! Спасибо !
Где вы установите размер компонента форума? –
Было бы проще использовать «JPanel» в качестве фона (переопределяя его метод «paintComponent»), а затем добавляя к нему компоненты. – MadProgrammer