Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вид JFrame, изменение заголовка окна 
V
    Опции темы
almostlost
Дата 3.5.2007, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



Парни здорова!
Дело в том, что мне нужно создать свой собственный JFrame, 
потому как заголовок стандартного окна меня совсем не устаивает(уж слишком он большой). 
Под заголовком подразумеваю самую перхую панель стандартного окна на котором распологаются кнопки закрыть, свернуть, развернуть. 
 Может кто знает как уменьшить размеры заголовка окна хотяб раза в два, при этом сохранить WindowLookAndFeel? 
PM MAIL   Вверх
olesja
  Дата 6.5.2007, 02:33 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 6.5.2007

Репутация: 2
Всего: 2



Хммм... Странный вопрос какой-то. 
Вообще-то нельзя так сделать, что-бы не менять LookAndFeel. Но если сделать рамку internal, то можно. 

Код

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

public class MyFrame extends JFrame
{
Font font=new Font("Helvetica", Font.PLAIN, 8);
public MyFrame()
{
super();
UIManager.put("InternalFrame.titleFont", new Font("Dialog", Font.ITALIC, 8));
setTitle("Name");
setPreferredSize(new Dimension(300, 300));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel panel=new JPanel();
panel.setBackground(Color.yellow);

JLabel label=new JLabel("Something here...");
label.setFont(font);
panel.add(label);
add(panel);
}
public static void main (String[]a)
{
JFrame.setDefaultLookAndFeelDecorated(true);
MyFrame frame=new MyFrame();
SwingUtilities.updateComponentTreeUI(frame); //Т.к. frame уже declared
frame.getContentPane();
frame.pack();
frame.setVisible(true);
}
}



Код плохой, не оброщай внимания.
Посмотри только на строку:
UIManager.put("InternalFrame.titleFont", new Font("Dialog", Font.ITALIC, 8));
Надеюсь, это поможет тебе smile

PM MAIL   Вверх
almostlost
Дата 7.5.2007, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



Жаль, что при этом использовать WindowLook не получается:(
Я думал сделать заголовок как в диалоговых окнах Photoshop(например,то которое отвечает за инструменты).
Видимо придется наследовать окно от Window и самостоятельно переопределять методы изменения размеров, рисовать заголовок, и прочее прочее. Большое спасибо тебе за внимание и за нелень.  smile 



PM MAIL   Вверх
olesja
  Дата 8.5.2007, 01:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 6.5.2007

Репутация: 2
Всего: 2



 smile 
PM MAIL   Вверх
korob2001
Дата 8.5.2007, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Извиняюсь, что не совсем вовремя. Вопрос уже помечен как решённый.

Но помоему можно наследовать не от JFrame, а от JWindow, тогда ты получаешь окно вообще без рамки. Собственно потом нужно будет только создать JPanel и внём скомпоновать свою строку заголовка вместе с иконками для управления окном. Затем добавить на север BorderLayout этот JPanel.
Таким образом можно сделать окно произовольной формы, правда придётся ещё воспользоваться классом java.awt.Robot, для того, что бы делать скриншот заднего вида, и подставлять его в нужное место, при перемещении окна.

Если нужно могу привести пример.

Это сообщение отредактировал(а) korob2001 - 8.5.2007, 17:10


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
LSD
Дата 8.5.2007, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 38
Всего: 538



korob2001 так almostlost, так и решил делать smile 



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
korob2001
Дата 8.5.2007, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Хех, не дочитал пост до конца. Прочёл только до того момента, что он хотел сделать что-то типа фотошоповских окон.

Sorry за невнимательность.  smile 


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   jk1
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, jk1.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: GUI и Java FX приложения | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.