5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180

Смещенное отображение прямоугольника во фрейме

12.12.2013, 15:49. Показов 1182. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Разбираюсь с основами графических интерфейсов по Хорстману, возник вопрос. Почему когда мы задаем размер фрейма, например 400 на 400, а затем вписываем во фрейм прямоугольник, с отступом от левого верхнего угла 10 и длиной/шириной 380 - он не вписан, а вылазит за фрейм... Код ниже. Спасибо за объяснение!

import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;

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
/**
 * @version 1.32 2007-04-14
 * @author Cay Horstmann
 */
public class DrawTest
{
   public static void main(String[] args)
   {
      EventQueue.invokeLater(new Runnable()
         {
            public void run()
            {
               DrawFrame frame = new DrawFrame();
               frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
               frame.setVisible(true);
            }
         });
   }
}
 
/**
 * A frame that contains a panel with drawings
 */
class DrawFrame extends JFrame
{
   public DrawFrame()
   {
      setTitle("DrawTest");
      setSize(400, 400);
 
      // add panel to frame
 
      DrawComponent component = new DrawComponent();
      add(component);
   }
 
}
 
/**
 * A component that displays rectangles and ellipses.
 */
class DrawComponent extends JComponent
{
   public void paintComponent(Graphics g)
   {
      Graphics2D g2 = (Graphics2D) g;
 
      // draw a rectangle
 
      double leftX = 10;
      double topY = 10;
      double width = 380;
      double height = 380;
 
      Rectangle2D rect = new Rectangle2D.Double(leftX, topY, width, height);
      g2.draw(rect);
   }
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.12.2013, 15:49
Ответы с готовыми решениями:

Отображение панелей во фрейме
В общем-то, есть программа, во фрейме которой лежат объекты, которые можно перетаскивать с помощью мыши. Объекты эти представляют собой...

Swing, отображение JMenu на фрейме
пытаюсь отобразить меню на фрейме,не совсем получается... public class InterfacePhoneClass; { public static void main(String...

Отображение другого сайта во фрейме
Здравствуйте, друзья. Поставлена такая задача: есть страница, нужно отобразить два фрейма, в одном будет шапка, которая не должна...

10
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.12.2013, 16:09
А что, толщина рамки у фрейма равна нулю со всех сторон?
0
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
12.12.2013, 16:12  [ТС]
Не знаю... По умолчанию она ж по моему равна нулю?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.12.2013, 16:16
Цитата Сообщение от yourfanat Посмотреть сообщение
Не знаю... По умолчанию она ж по моему равна нулю?
Откройте любое окно в системе и посмотрите - Вы рамку видите? Заголовок окна видите? По-Вашему толщина заголовка равна нулю?
0
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
12.12.2013, 16:21  [ТС]
А можно ли как то задать толщину нулю со всех сторон?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.12.2013, 16:38
Можно. Но это уже не JFrame, а JWindow. БЕЗ рамки, БЕЗ возможности изменения размеров и перетаскивания. Всё это придется эмулировать руками. Оно Вам надо?
0
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
12.12.2013, 16:41  [ТС]
Оно мне конечно не надо))) Просто хочу разобраться как я могу например создать во фрейме прямоугольник с одинаковыми отступами от сторон фрейма...
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
12.12.2013, 17:10
Цитата Сообщение от yourfanat Посмотреть сообщение
Просто хочу разобраться как я могу например создать во фрейме прямоугольник с одинаковыми отступами от сторон фрейма...
Ну так и получите в компоненте DrawComponent при ее отрисовке ее размеры и от них пляшите - отнимите от ширины и высоты по ширине рамки, получите ширину и высоту прямоугольника.
0
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
12.12.2013, 17:31  [ТС]
Не подскажите метод?
0
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
13.12.2013, 11:50
Цитата Сообщение от yourfanat Посмотреть сообщение
Не подскажите метод?
Какой метод? Как получить размеры компоненты? Не подскажу. Посмотрите, наконец, API!
0
5 / 5 / 0
Регистрация: 30.10.2013
Сообщений: 180
13.12.2013, 12:25  [ТС]
Ок! Спасибо! Что то я действительно немного обнаглел)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.12.2013, 12:25
Помогаю со студенческими работами здесь

Нестабильное отображение элементов на фрейме
Добдень, Такой баг(картинку прикрепил): Создал фрейм, добавил прогресбар, запускаю - фрейм пустой, потянул за него (изменил размер...

Неправильно отображение в плавающем фрейме
Не получается убрать эти непонятные отсупы, скажите ,как их убрать. Вот файл с которого идёт загрузка. <!DOCTYPE HTML> ...

PyQt5 | Отображение виджета во фрейме
Доброго времени суток. Столкнулся со следующей проблемой: у меня есть виджет, который рисует текст, и фрейм, в котором нужно этот текст...

Отображение содержимого во фрейме с прокруткой
Здравствуйте, уважаемые форумчане! Как отобразить содержимое (текст, например) во фрейме с прокруткой - как в лицензионном соглашении -...

Можно ли из страницы в одном фрейме обратиться к элементу на странице в другом фрейме?
Имеется фреймсет с двумя фреймами. Можно ли из страницы в одном фрейме обратиться к элементу страницы в другом фрейме? Если можно -...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определенном условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru