Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
132 / 126 / 85
Регистрация: 13.09.2013
Сообщений: 485
1

Рисование на панели, имеющий фоновый рисунок

11.05.2015, 14:32. Показов 648. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день. Возникла сложность с рисованием на панели, никак не могу понять, с какой стороны взяться за нее.
Есть панель, на которой установлен фоновый рисунок. Необходимо на этой же панели (или на панели поверх нее) отрисовать эллипсы, так, чтобы они отображались поверх фонового рисунка. Эллипсы должны рисоваться по нажатию кнопки. Можно ли это как-то сделать?

Добавлено через 3 часа 50 минут
Попробовал сделать так:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import java.awt.*;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import javax.swing.*;
 
 
public class JavaApplication2 extends JFrame{
 
   JPanel All=new JPanel(); //Общая панель
   
   ImagePanel cp=new ImagePanel(new ImageIcon("folder.jpg").getImage());
  
   JPanel UserEnter=new JPanel();//Панель выбора
   JButton Game=new JButton("Start" );
   
   GridLayout gr1=new  GridLayout(1,2);
   SimpleComponent ooo=new SimpleComponent();
    
   JavaApplication2(){
    cp.setLayout(new BorderLayout());
    All.setLayout(gr1);
    All.add(cp);
    All.add(UserEnter);
    UserEnter.add(Game);
    setSize(600, 420);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
     setContentPane(All);
    setVisible(true);
    
    cp.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5),
                BorderFactory.createLineBorder(Color.black)));
    cp.add(ooo, BorderLayout.CENTER);
    Game.addActionListener(new GameButtonActionListener() );
   }
   private class GameButtonActionListener implements ActionListener {
 
 
        @Override
        public void actionPerformed(ActionEvent ae) {
             }
   }
    private class ImagePanel extends JPanel {
 
        private Image img;
        public ImagePanel(String img) {
          this(new ImageIcon(img).getImage());
        }
 
        public ImagePanel(Image img) {
          //setLayout(null);
          this.img = img;
 
 
        }
 
        @Override
        public void paintComponent(Graphics g) {
          super.paintComponent(g);
          g.drawImage(img, 0, 0, null);
 
        }
    }
      public static void main(String[] args) {
        JavaApplication2 h=new JavaApplication2();
    }
    
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
 
 
public class SimpleComponent extends JPanel{
   
   public SimpleComponent() {
        setOpaque(false);
    }
 
    @Override
  protected void paintComponent(Graphics g)
  {
    super.paintComponent(g);
    g.setColor(Color.RED);
    g.drawOval(20, 20, 20, 20);
    
  } 
}
Но тут получается, что объект SimpleComponent() содается при создании формы, мне надо по кнопке.
Попробовал переопределить метод:
Java
1
2
3
4
5
6
7
8
9
 private class GameButtonActionListener implements ActionListener {
 
 
        @Override
        public void actionPerformed(ActionEvent ae) {
             SimpleComponent ooo=new SimpleComponent();
        cp.add(ooo, BorderLayout.CENTER);
        }
   }
Но тогда эллипс не отрисовывается вообще

Добавлено через 20 часов 11 минут
Разобрался, можно закрывать
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.05.2015, 14:32
Ответы с готовыми решениями:

Фоновый рисунок
Как можно установить фоновый рисунок для формы? и еще такой вопрос, можно ли для JTextPane...

Как на фоновый рисунок наложить второй рисунок
Как на рисунок (фон) наложить текст с таблицей? Сама таблица есть не в текстовом формате (в Word),...

Фоновый рисунок
<table width="410" height="310" border="0" align="center" cellpadding="1"...

Фоновый рисунок
У меня такой вопрос, как в собствеено написаной программе, рисунок сделать в фоновом изображении...

0
11.05.2015, 14:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.05.2015, 14:32
Помогаю со студенческими работами здесь

Фоновый рисунок
Купили в Америке HP Mini 210-1199DX Windows7 Starter ,поменяли на русскую начальную версию,но...

Фоновый рисунок
Работаю в Visual Studio 2010. Вопрос в следующем. Если создать обычный проект визардский (win 32) ,...

Фоновый рисунок QT
Здравствуйте, Подскажите пожалуйста, как сделать фон в программу? Руководствуясь примерами...

Не отображается фоновый рисунок
Доброго времени суток пишу свой сайт (статический, без движка); дизайн будет в виде PS Vita; меню...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru