1

我目前有一个程序通过代码文件,并将所有注释向右对齐(100 个字符),因此它们都在列中并在 JList 中输出代码(因此代码的每一行都是列表)。我要做的是在输出调整后的代码时在所有注释开始的背景中添加一条垂直线(类似于 netbeans 中指示页面结束位置的行)。我觉得使用 JList 是不可能的,任何人都可以确定吗?这在java中是否可能,如果可以,我应该怎么做?

4

4 回答 4

1

javax.swing.BorderFactory.createMatteBorder()在封闭面板上试一试;对右侧使用非零值。

panel.setBorder(BorderFactory.createMatteBorder(0, 0, 0, 1, Color.red));
于 2013-07-01T21:33:25.313 回答
1

尝试使用 ListUI 在背景中画一条线:

public static void main(String[] args) {
    JDialog dialog = new JDialog();

    JList list = new JList();
    list.setUI(new LinedListUI());

    dialog.add(new JScrollPane(list));


    dialog.setPreferredSize(new Dimension(300, 300));
    dialog.pack();
    dialog.setLocationRelativeTo(null);
    dialog.setVisible(true);
}


static class LinedListUI extends BasicListUI {

    public void paint(Graphics g, JComponent c) {

        super.paint(g, c);
        g.setColor(Color.gray);
        int x = (int) (c.getWidth() * 0.8);
        g.drawLine(x, 0, x, c.getHeight());
    }
}
于 2013-07-02T08:31:17.117 回答
0

将行添加为 html。下面我使用了 apache commons StringEscapeUtils。

final String COMMENT_BEGIN =
    "<span style='width: 3px; background-color: #00cc00'></span>";
line = "<html>" + StringEscapeUtils.escapeHtml(line)
    .replaceFirst("//", COMMENT_BEGIN + "$0");

以同样的方式,您可以简单地将评论设为绿色左右。

于 2013-07-02T14:06:36.357 回答
0

我不完全确定你在做什么,但在我看来,你可以通过在 JList 中添加一个看起来像“--------------”的元素来获得一个不错的解决方案-----" 显示分页符的位置。我不确定这是否是您正在寻找的东西。

于 2013-07-01T17:51:43.867 回答