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

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

12.12.2013, 15:49. Показов 1140. Ответов 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
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru