1

JPanelを作成し、BorderFactoryでTitleBorderを追加しましたが、パネルの周りに青い線が表示されています。この行を削除したいと思います。

助言がありますか?

ありがとうございました

4

2 に答える 2

3

青い線(金属)は、明示的に指定されていない場合にTitledBorderによって使用されるデフォルトの境界線です。デフォルトのfiEmptyBorderが気に入らない場合は、別の境界線を指定する必要があります。

myPanel.setBorder(BorderFactory.createTitledBorder
    (BorderFactory.createEmptyBorder(), someTitle));
于 2013-01-30T14:55:16.220 に答える
3
  • Iからこの値を抽出しようとしたことがないTitleBorders AP、メソッドが保護されている、またはUIManager

  • TitleBorder内でLineBorderを使用する必要があります

  • 最も単純な構文はxxx.setBorder(new TitledBorder(new LineBorder(Color.ORANGE, 1), "label"));Color(たとえば)myPanel.getBackground()のインストレッドである可能性があります。Color.ORANGE

  • 別のオプションがあります(可能です)

    1. 移動の説明(上、下.....)

    2. 変化するFont

    3. 変更ForegroundColor説明用)

  • Oracleチュートリアルのその他のオプションと説明境界線の使用方法(CompounBorders)

例えば

ここに画像の説明を入力してください

import java.awt.Color;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
import javax.swing.border.TitledBorder;

public class AddComponentsAtRuntime {

    private JFrame f;
    private JPanel panel;
    private JCheckBox checkValidate, checkReValidate, checkRepaint, checkPack;

    public AddComponentsAtRuntime() {
        JButton b = new JButton();
        b.setBackground(Color.red);
        b.setBorder(new LineBorder(Color.black, 2));
        b.setPreferredSize(new Dimension(600, 10));
        panel = new JPanel(new GridLayout(0, 1));
        panel.add(b);
        panel.setBorder(new TitledBorder(new LineBorder(Color.ORANGE, 1),
                "Add Components At Runtime"));
        f = new JFrame();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.add(panel, "Center");
        f.add(getCheckBoxPanel(), "South");
        f.setLocation(200, 200);
        f.pack();
        f.setVisible(true);
    }

    private JPanel getCheckBoxPanel() {
        checkValidate = new JCheckBox("validate");
        checkValidate.setSelected(false);
        checkReValidate = new JCheckBox("revalidate");
        checkReValidate.setSelected(false);
        checkRepaint = new JCheckBox("repaint");
        checkRepaint.setSelected(false);
        checkPack = new JCheckBox("pack");
        checkPack.setSelected(false);
        JButton addComp = new JButton("Add New One");
        addComp.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                JButton b = new JButton();
                b.setBackground(Color.red);
                b.setBorder(new LineBorder(Color.black, 2));
                b.setPreferredSize(new Dimension(600, 10));
                panel.add(b);
                makeChange();
                System.out.println(" Components Count after Adds :" + panel.getComponentCount());
            }
        });
        JButton removeComp = new JButton("Remove One");
        removeComp.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                int count = panel.getComponentCount();
                if (count > 0) {
                    panel.remove(0);
                }
                makeChange();
                System.out.println(" Components Count after Removes :" + panel.getComponentCount());
            }
        });
        JPanel panel2 = new JPanel();
        panel2.add(checkValidate);
        panel2.add(checkReValidate);
        panel2.add(checkRepaint);
        panel2.add(checkPack);
        panel2.add(addComp);
        panel2.add(removeComp);
        return panel2;
    }

    private void makeChange() {
        if (checkValidate.isSelected()) {
            panel.validate();
        }
        if (checkReValidate.isSelected()) {
            panel.revalidate();
        }
        if (checkRepaint.isSelected()) {
            panel.repaint();
        }
        if (checkPack.isSelected()) {
            f.pack();
        }
    }

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

            public void run() {
                AddComponentsAtRuntime makingChanges = new AddComponentsAtRuntime();
            }
        });
    }
}
于 2013-01-30T14:40:40.650 に答える