Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
5 / 5 / 1
Регистрация: 31.10.2015
Сообщений: 274

Доступ к Canvas

29.05.2017, 20:34. Показов 954. Ответов 1

Студворк — интернет-сервис помощи студентам
Как получить доступ к канве чтобы рисовать?

Нашёл пример один.... Попробовал но не работает.

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
package functtochka;
 
 
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JComponent;
import javax.swing.JFrame;
 
 
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
 
/**
 *
 * @author Артем
 */
/* Класс, который будет рисовать элементы*/
class Canvas extends JComponent{
 
/*Метод, перерисовывающий элемент внутри окна
 *при обновлении*/
  public void paintComponent(Graphics g){
    super.paintComponents(g);       
    Graphics2D g2d=(Graphics2D)g;
 
/*  Устанавливает цвет рисования в зелёный*/  
    g2d.setPaint(Color.GREEN);
 
/*  Рисует текущим цветом прямоугольник */  
    g2d.drawRect(100, 100, 80, 20);
 
    g2d.setPaint(Color.RED);
/*  Рисует текущим цветом в координатах (150,150) строку "привет мир"*/       
    g2d.drawString("Привет мир", 150, 150);
 
    g2d.setColor(Color.blue);
/*  Рисует текущим цветом овал в координатах (200,50)*/  
    g2d.fillOval(200, 50, 50, 20);
 
/*  Вызывает обновление себя после завершения рисования   */  
    super.repaint();
  } 
}
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
package functtochka;
 
import java.awt.BorderLayout;
import java.awt.Canvas;
import java.awt.Graphics;
import javax.swing.JFrame;
 
public class FunctTochka {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
/* Задание заголовка окна*/
    JFrame w=new JFrame("Окно с изображением");
 
    /*Задание размеров окна*/
    w.setSize(400, 400);
 
/*  Если у окна не будет функции закрытия, 
 *  при нажатии крестика окно не закроется.*/
    w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
/*  Менеджер определяет
 *  каким образом в окне расположены объекты.*/
    w.setLayout(new BorderLayout(1,1));
 
            Canvas canv=new Canvas();
        w.add(canv);    
        w.setVisible(true);
        
 
    
    }
    
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.05.2017, 20:34
Ответы с готовыми решениями:

Canvas - как получить доступ к Event Camera
Всем привет! Подскажите как у компонента Canvas, получить доступ к его полю Event Camera ? Нужно чтобы при старте игры, камера с...

Можно ли одной процедурой рисовать на Image.Canvas и Printer.Canvas
Здравствуйте, пожалуйста, подскажите можно ли одной процедурой рисовать на Image.Canvas и Printer.Canvas?

Canvas html5, как разместить черный пискель в центре canvas'a?
как разместить черный пискель в центре canvas'a?

1
 Аватар для lamaundercover
3 / 3 / 1
Регистрация: 15.08.2016
Сообщений: 149
30.05.2017, 01:29
Добрый день!

Упростил код, сделав inner class:

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
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Graphics2D;
import javax.swing.JComponent;
import javax.swing.JFrame;
import java.awt.BorderLayout;
 
public class untitled {
    public static void main(String[] args) {
        new untitled().start();
    }
 
    public void start() {
/* Задание заголовка окна*/
        JFrame w = new JFrame("Окно с изображением");
 
    /*Задание размеров окна*/
        w.setSize(400, 400);
 
/*  Если у окна не будет функции закрытия,
 *  при нажатии крестика окно не закроется.*/
        w.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
/*  Менеджер определяет
 *  каким образом в окне расположены объекты.*/
        w.setLayout(new BorderLayout(1, 1));
 
        Canvas canv = new Canvas();
        w.add(canv);
        w.setVisible(true);
    }
 
 
    /* Класс, который будет рисовать элементы*/
    class Canvas extends JComponent {
 
        /*Метод, перерисовывающий элемент внутри окна
         *при обновлении*/
        public void paintComponent(Graphics g) {
            super.paintComponents(g);
            Graphics2D g2d = (Graphics2D) g;
 
/*  Устанавливает цвет рисования в зелёный*/
            g2d.setPaint(Color.GREEN);
 
/*  Рисует текущим цветом прямоугольник */
            g2d.drawRect(100, 100, 80, 20);
 
            g2d.setPaint(Color.RED);
/*  Рисует текущим цветом в координатах (150,150) строку "привет мир"*/
            g2d.drawString("Привет мир", 150, 150);
 
            g2d.setColor(Color.blue);
/*  Рисует текущим цветом овал в координатах (200,50)*/
            g2d.fillOval(200, 50, 50, 20);
 
/*  Вызывает обновление себя после завершения рисования */
            super.repaint();
        }
    }
}
Миниатюры
Доступ к Canvas  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.05.2017, 01:29
Помогаю со студенческими работами здесь

построить функцию y=kx+b (линейная функция) с помощью Vcart или canvas (form.canvas)
Надо построить функцию y=kx+b (линейная функция) с помощью Vcart или canvas (form.canvas)

Как добиться одинакового размера шрифта при выводе на Image.Canvas и Printer.Canvas
Здравствуйте! Подскажите, пожалуйста, как добиться одинакового размера шрифта при выводе на Image.Canvas и Printer.Canvas

Переместить метку с canvas на canvas
Есть 4 canvas, на каждой - по 3 метки. Нужно реализовать программу по перетаскиванию меток с canvas на canvas. Вот моя версия: ...

Canvas привязать к другому Canvas
Здравствуйте. Подскажите пожалуйста, как реализовать следующее: имеются две WPF формы с элементом Canvas каждая. Как сделать,...

Экспорт Canvas в BMP: На выходе только черный фон. + Экспорт невидимых Canvas'ов
Здравствуйте! Есть Canvas (WPF), заполняемый в процессе работы программы (в том числе изменяется и размер). Стоит задача экспортировать...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru