Стиль CSS в ячейке JTable

0

Я пытаюсь поместить HTML в JTable ячейку, я протестировал этот фрагмент кода в IE, но дело в том, что оно не появляется так, как должно быть в ячейке таблицы. Могу ли я подтвердить, что он не работает в ячейке таблицы? Ниже приведен HTML.

<html>
<style>
div {
    *display: inline; /* For IE7 */
    display:inline-block;
    width: 50%;
    text-align: center;
</style>
  <div>A</div><div>B</div>
  <div>A1</div><div>B1</div>
  <div>A2</div><div>B2</div>
</html>

Я также попытался поместить стиль внутри <div>, он работает в IE, но не в ячейке таблицы. Может ли кто-нибудь помочь?

  • 0
    Swing имеет лишь ограниченную поддержку HTML около 3,2. Я думаю, вполне вероятно, что CSS не поддерживается (если вообще не очень)
  • 0
    «это работает в IE, но ..» Игнорируйте, что «работает в IE». IE был разработан, чтобы принять любую старую чушь и сделать хорошую попытку угадать, что имел в виду автор. Если вы хотите знать, что HTML 3.2 и стили поддерживаются в компоненте Swing с поддержкой HTML, отметьте его в JEditorPane . Как правило, для лучшей помощи выложите MCTaRE (минимальный завершенный протестированный и читаемый пример).
Показать ещё 6 комментариев
Теги:
swing

1 ответ

3

Похоже, что атрибуты стиля display игнорируются простым механизмом CSS, предоставляемым JSE. Этот источник демонстрирует это. Текст в стиле красный, но атрибут отображения ничего не меняет.

Изображение 174551

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;

class HTMLDisplayStyle {

    final static String EOL = System.getProperty("line.separator");
    final static String HTML_PRE = "<html>" + EOL
            + "<head>" + EOL
            + "<style>" + EOL
            + "span {" + EOL
            + "color: #FF0000;" + EOL
            + "display: ";
    final static String HTML_POST = ";" + EOL
            + "}" + EOL
            + "</style>" + EOL
            + "</head>" + EOL
            + "<body>" + EOL
            + "<p>" + EOL
            + "Some text " + EOL
            + "<span>text with display style</span> " + EOL
            + "some more text." + EOL
            + "</p>" + EOL
            + "</body>" + EOL
            + "</html>" + EOL;
    final static String[] ATTRIBUTES = {
        "inline",
        "block",
        "none"
    };

    public static void main(String[] args) {
        Runnable r = new Runnable() {

            @Override
            public void run() {
                JPanel gui = new JPanel(new BorderLayout());

                String s = HTML_PRE + ATTRIBUTES[0] + HTML_POST;
                final JTextArea ta = new JTextArea(s, 15, 30);
                gui.add(new JScrollPane(ta), BorderLayout.PAGE_END);

                final JLabel l = new JLabel(s);
                gui.add(new JScrollPane(l));

                final JComboBox style = new JComboBox(ATTRIBUTES);
                gui.add(style, BorderLayout.PAGE_START);
                ActionListener styleListener = new ActionListener() {

                    @Override
                    public void actionPerformed(ActionEvent e) {
                        String styleAttribute = 
                                style.getSelectedItem().toString();
                        String html = HTML_PRE + styleAttribute + HTML_POST;
                        ta.setText(html);
                        l.setText(html);
                    }
                };
                style.addActionListener(styleListener);


                JOptionPane.showMessageDialog(null, gui);
            }
        };
        // Swing GUIs should be created and updated on the EDT
        // http://docs.oracle.com/javase/tutorial/uiswing/concurrency
        SwingUtilities.invokeLater(r);
    }
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню