Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: GUI и Java FX приложения > Всплывающая подсказка в jComboBox?


Автор: ilta 30.7.2013, 10:47
Здравствуйте!
В jComboBox выводится список значений. Иногда длина значений такова, что их не видно полностью, т.е. пользователь видит обрезанное значение. Есть ли стандартный метод, позволяющий выводить всплывающую подсказку для тех значений, которые не видно полностью, или надо изобретать что-то самостоятельно?
Заранее спасибо!

Автор: Adrenal1ne 31.7.2013, 20:58
Может тебе подойдет tooltip ?

пример
 
Код

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.plaf.basic.*;

    public class ToolTipComboBox extends JFrame {
    
     String[] items = {"jw" ,"ja" ,"la" };
     String[] tooltips = {"Javanese ","Japanese ","Latin "};
    
         public ToolTipComboBox() {
         super("ToolTip ComboBox Example");
        
         JComboBox combo = new JComboBox(items);
         combo.setRenderer(new MyComboBoxRenderer());
        
         getContentPane().setLayout(new FlowLayout());
         getContentPane().add(combo);
     }
    
         class MyComboBoxRenderer extends BasicComboBoxRenderer {
         public Component getListCellRendererComponent( JList list,
             Object value, int index, boolean isSelected, boolean cellHasFocus) {
                 if (isSelected) {
                 setBackground(list.getSelectionBackground());
                 setForeground(list.getSelectionForeground());
                     if (-1 < index) {
                     list.setToolTipText(tooltips[index]);
                 }
                 } else {
                 setBackground(list.getBackground());
                 setForeground(list.getForeground());
             }
             setFont(list.getFont());
             setText((value == null) ? "" : value.toString());
             return this;
         }
     }
    
         public static void main (String args[]) {
         ToolTipComboBox frame = new ToolTipComboBox();
             frame.addWindowListener(new WindowAdapter() {
                 public void windowClosing(WindowEvent e) {
                 System.exit(0);
             }
         });
         frame.setSize(200, 140);
         frame.setVisible(true);
     }
}

Автор: ilta 1.8.2013, 13:57
Adrenal1ne, спасибо за ответ! Попробую, но хотелось бы менее... ммм... экзотического решения. smile 

Автор: Mirkes 6.8.2013, 15:29
Вообще-то это стандартное, предусмотренное разработчиками решение.

Автор: ilta 20.8.2013, 09:10
Mirkes, спасибо за информацию!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)