3

JavaSwingアプリケーションでタイトル付きセパレーターを表示したい。何かのようなもの

- - - -文章 - - - -

この機能を提供するサードパーティのライブラリをいくつか見つけました。

しかし、サードパーティのAPIを使用しない方法に興味があります。JSeparatorを拡張してこれを行うことはできますか?他にどのようにそれを行うことができますか?

4

3 に答える 3

5

MatteBorder と TitledBorder の組み合わせを使用できると思います

MatteBorder mb = new MatteBorder(1, 0, 0, 0, Color.BLACK);
TitledBorder tb = new TitledBorder(mb, "Some Long Text", TitledBorder.CENTER, TitledBorder.DEFAULT_POSITION);
于 2012-07-13T08:13:57.733 に答える
4

TitledBorder を使用します。たとえば、次のようにします。

import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.border.TitledBorder;

public class TestBorder {

    protected void initUI() {
        JFrame frame = new JFrame(TestBorder.class.getSimpleName());
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panel = new JPanel();
        TitledBorder titledBorder = BorderFactory.createTitledBorder("Some title");
        titledBorder.setTitleJustification(TitledBorder.CENTER);
        panel.setBorder(titledBorder);
        frame.add(panel);
        frame.setSize(400, 300);
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                new TestBorder().initUI();
            }
        });
    }

}
于 2012-07-13T07:58:09.467 に答える
0

それは単純で小文字です。

import javax.swing.border.*;

それから

BevelBorder bedge=new BevelBorder(BevelBorder.RAISED);
lbl.setBorder(bedge);

---次の罫線タイプ

import javax.swing.border.*;

それから

TitledBorder tedge=new TitledBorder(TitledBorder.CENTER);
lbl.setBorder(tedge);
于 2015-12-25T21:12:58.523 に答える