Как установить изображение в качестве фона в приложении Java в Eclipse или Windows Builder Pro - PullRequest
0 голосов
/ 08 января 2012

Мне было интересно, как установить изображение в качестве фона для приложения на Java.Я знаю, что в Android это очень просто, и в Windows Builder Pro есть много удивительных инструментов для создания графического интерфейса Java, поэтому мне было интересно, есть ли способ сделать это?Заранее спасибо!Мое приложение выглядит довольно плохо, как серый ...

Ответы [ 3 ]

2 голосов
/ 08 января 2012

Вы не можете точно установить фон для изображения.Что вам нужно сделать, это нарисовать изображение на графике во время рисования.Поэтому вам нужно создать подкласс JPanel, переопределить метод paintComponent () и нарисовать там изображение.

 public class ImagePanel extends JPanel {
     private Image bgImage;

     public Image getBackgroundImage() {
        return this.bgImage;
     }

     public void setBackgroundImage(Image image) {
        this.bgImage = image;
     }

     protected paintComponent(Graphics g) {
         super.paintComponent(g);
         g.drawImage( bgImage, 0, 0, bgImage.getWidth(null), bgImage.getHeight(null), null );
     }
 }
1 голос
/ 08 января 2012

Вы можете установить цвет вашего компонента, вызвав:

.setBackground(myColor);

Некоторые компоненты, такие как JLabels, требуют, чтобы вы вызвали его, чтобы изменение цвета вступило в силу:

.setOpaque(true);

Надеюсь, это помогло.

0 голосов
/ 12 апреля 2016

Технически вы можете добавить метку на весь экран, а затем в опции значка изменить конкретный фон:

JLabel lblNewLabel = new JLabel("n");
lblNewLabel.setIcon(new ImageIcon("gene.jpg"));
lblNewLabel.setBounds(0, 0, 434, 261);
frame.getContentPane().add(lblNewLabel);

Например, в источнике

private void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 450, 300);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);

    JButton btnNewButton = new JButton("Let's start!");
    btnNewButton.setFont(new Font("David", Font.ITALIC, 12));
    btnNewButton.addActionListener(new ActionListener()
    {
        public void actionPerformed(ActionEvent e) 
        {
            JOptionPane.showMessageDialog(null, "Now we will have to add some code here right =]?");
        }
    }
                                                        );
    btnNewButton.setBounds(158, 120, 89, 23);
    frame.getContentPane().add(btnNewButton);


    JLabel lblNewLabel = new JLabel("n");
    lblNewLabel.setIcon(new ImageIcon("gene.jpg"));
    lblNewLabel.setBounds(0, 0, 434, 261);
    frame.getContentPane().add(lblNewLabel);
}

http://imgur.com/rSTXZLP.jpg

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...