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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужно стандартный Java календарь? Срочно! 
:(
    Опции темы
KISha
Дата 7.7.2008, 00:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Народ Помогите !

У меня есть 3 колонки из JTable,
один из них Date колонок,
 при попытки щелчек за колонок дату,
нужно отобразить календрчик, 
вопрос: можно ли сделать такую подсказку ???
Мысль такой, Кто занимался с PL/SQL-ом (Developer) 
там такого подсказка есть...
Мне нужен тот же самый календарчик.   smile  smile  smile 
------------------------------------
ID   | Name  |  Date
------------------------------------
0    | Jony    | 02.05.2000                         
1    | Max     | 05.12.1996               
2    | Alex     | 30.01.2005                
.     |            |
.     |            |
.     |            |
------------------------------------
заранее спасибо!!!
PM MAIL   Вверх
niasilil
Дата 7.7.2008, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



я пользовал JCalendar, рекомендую


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
KISha
Дата 7.7.2008, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



  smile  niasilil
 Ты не смог бы дать код , как пользуется JCalendar?
PM MAIL   Вверх
niasilil
Дата 8.7.2008, 03:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(KISha @ 7.7.2008,  10:01)
smile  niasilil
 Ты не смог бы дать код , как пользуется JCalendar?

это немного не то что я использовал, но тоже неплохо. (поиск работает, если чё)
http://forum.vingrad.ru/forum/topic-35584/...ndar/index.html
идея там понятна, уж не знаю кто код писал. LSD, наверное. 

я пользовал http://www.toedter.com/en/jcalendar/index.html
мне как то по стилю понравилось больше. 


--------------------
SCJP 5.0, SCJD
PM MAIL   Вверх
dorogoyIV
Дата 8.7.2008, 14:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



пока ты тут ждешь, уже давно бы сам написал !!!
это займет, ну максимум два дня - с учетом неопытности
PM MAIL   Вверх
dorogoyIV
Дата 8.7.2008, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

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



niasilil, там в факе отличный календарь от LSD.

я как всегда пошел немного другим путем  smile .

Конечно делал для своих нужд.
вот, выкладываю - этот календарь ничего не делает, только показывает расположение дней в месяце:
Код

import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;

public class CalendarTable extends JFrame
                           implements ActionListener, Runnable
{
 Calendar calendar = Calendar.getInstance();
 Object [] names = new Object [] {"Пн", "Вт", "Ср", "Чт", "Пт", "Сб", "Вс"};
 Object [][] days = new Object [6][names.length];
 DefaultTableModel model;
 JTable table = new JTable();
 JLabel month, currentTime;

 public CalendarTable()
 {
  init();
  add(new JScrollPane(table));

  JTableHeader header = table.getTableHeader();
  header.setReorderingAllowed(false);

  MyButton b = new MyButton("<<");
  b.setToolTipText("На месяц назад");
  MyButton f = new MyButton(">>");
  f.setToolTipText("На месяц вперед");

  JPanel north = new JPanel(new BorderLayout());
  north.add(new JPanel(), "North");
  north.add(new JPanel(), "South");
  north.add(b, "West");

  month = new JLabel(new DateFormatSymbols().getMonths()[calendar.get(Calendar.MONTH)]
                     + "     " + calendar.get(Calendar.YEAR), JLabel.CENTER);
  north.add(month);

  north.add(f, "East");
  add(north, "North");

  b.addActionListener(this);
  f.addActionListener(this);

  currentTime = new JLabel("<html>&nbsp;<br>&nbsp;", JLabel.CENTER);
  currentTime.setForeground(Color.gray);
  add(currentTime, "South");

  new Thread(this).start();
 }

 public void run()
 {
  String [] months = {"января", "февраля", "марта", "апреля", "мая",
                      "июня", "июля", "августа", "сентября",
                      "октября", "ноября", "декабря"};
  DateFormatSymbols dfs = new DateFormatSymbols(new Locale("ru"));
  dfs.setMonths(months);
  SimpleDateFormat sdf = new SimpleDateFormat("d MMMM yyyy 'г.' E     HH : mm : ss", dfs);

  try
  {
   while(true)
   {
    Thread.currentThread().sleep(1000);
    currentTime.setText("<html>Сегодня:<br>" + sdf.format(new Date()));
    currentTime.setToolTipText(currentTime.getText().substring(0,
                               currentTime.getText().length() - 12) + "<html>&nbsp;");
   }
  }
  catch(Exception ex){}
 }

 public void actionPerformed(ActionEvent e)
 {
  if(e.getActionCommand().equals("<<"))
   setMonth(-1);
  else
   setMonth(1);
 }

 public void setMonth(int n)
 {
  int m = calendar.get(Calendar.MONTH);
  calendar.set(Calendar.MONTH, m + n);
  month.setText(new DateFormatSymbols().getMonths()[calendar.get(Calendar.MONTH)]
             + "     " + calendar.get(Calendar.YEAR));
  init();
 }

 public void init()
 {
  model = new DefaultTableModel(days, names);
  table.setModel((TableModel)model);

  for(int i = 0; i < table.getColumnCount(); i++)
   table.getColumnModel().getColumn(i).setCellRenderer(new CalendarRenderer());

  Calendar c = (Calendar)calendar.clone();
  c.set(Calendar.DATE, 1);

  int empty = c.get(Calendar.DAY_OF_WEEK) - 2;
  int days_count = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
  int day = 0;

  for(int row = 0; row < 6; row++)
  {
   for(int col = 0; col < 7; col++)
   {
    if(empty < 0)
     empty = c.get(Calendar.DAY_OF_WEEK) + 5;

    if(col < empty && row == 0)
     table.setValueAt("", row, col);

    else if(day < days_count)
     table.setValueAt(++day, row, col);
   }
  }
 }

 public static void main(String [] args)
 {
  JFrame f = new CalendarTable();
  f.setBounds(100, 100, 200, 215);
  f.setResizable(false);
  f.setVisible(true);
  f.setDefaultCloseOperation(3);
 }
}

class MyButton extends JButton
{
 MyButton(String text)
 {
  setText(text);
  setPreferredSize(new Dimension(30, 16));
  setMargin(new Insets(0, 0, 0, 0));
  setFocusable(false);
 }
}

class CalendarRenderer extends JLabel
                       implements TableCellRenderer
{
 CalendarRenderer()
 {
  super("", JLabel.CENTER);
 }

 public Component getTableCellRendererComponent(JTable table, Object value,
         boolean isSelected, boolean hasFocus, int row, int column)
 {
  setText(value == null ? "" : value.toString());

  setOpaque(true);
  setBackground(Color.green);
  setBackground(column == 5 ? Color.lightGray : getBackground());
  setBackground(column == 6 ? Color.pink : getBackground());

  setBorder(hasFocus && value != null && !value.equals("") ?
              new javax.swing.border.LineBorder(Color.red) : null);

  return this;
 }
}


ну, думаю, не будет сложно все это переделать для себя
PM MAIL   Вверх
niasilil
Дата 8.7.2008, 22:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(dorogoyIV @ 8.7.2008,  15:49)
niasilil, там в факе отличный календарь от LSD.

так я на него и дал ссылку вроде  smile 


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

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

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


 




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


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

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