прямо сейчас я не могу нашел правильный способ, как re_layout JCheckBoxMenuItem,
, но согласны ли вы с этим, стандартный вывод Качели с помощью (по умолчанию) Metal Look и Feel ???, просто чтобы избежать любой missunderstand с помощью другого Look и Feel (s), потому что есть некоторые отличия в стандарте API Betweens Свинга Look и чувствует себя слишком

из учебники коды (измененные и удалены balasts и шумы)
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MenuLookDemo {
private Icon errorIcon = UIManager.getIcon("OptionPane.errorIcon");
private Icon infoIcon = UIManager.getIcon("OptionPane.informationIcon");
private Icon warnIcon = UIManager.getIcon("OptionPane.warningIcon");
private JTextArea output;
private JScrollPane scrollPane;
private JMenuBar menuBar;
private JMenu menu;
private JMenuItem menuItem;
private JRadioButtonMenuItem rbMenuItem;
private JCheckBoxMenuItem cbMenuItem;
public JMenuBar createMenuBar() {
menuBar = new JMenuBar();
menu = new JMenu("A Menu");
menu.getAccessibleContext().setAccessibleDescription("The only menu in this program that has menu items");
menuBar.add(menu);
menuItem = new JMenuItem("A text-only menu item", KeyEvent.VK_T);
menuItem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_1, ActionEvent.ALT_MASK));
menuItem.getAccessibleContext().setAccessibleDescription("This doesn't really do anything");
menu.add(menuItem);
menuItem = new JMenuItem("Both text and icon", errorIcon);
menu.add(menuItem);
menu.addSeparator();
ButtonGroup group = new ButtonGroup();
rbMenuItem = new JRadioButtonMenuItem("A radio button menu item");
rbMenuItem.setSelected(true);
group.add(rbMenuItem);
menu.add(rbMenuItem);
rbMenuItem = new JRadioButtonMenuItem("Another one", infoIcon);
group.add(rbMenuItem);
menu.add(rbMenuItem);
menu.addSeparator();
cbMenuItem = new JCheckBoxMenuItem("A check box menu item", warnIcon);
menu.add(cbMenuItem);
cbMenuItem = new JCheckBoxMenuItem("Another one");
menu.add(cbMenuItem);
menu.addSeparator();
return menuBar;
}
public Container createContentPane() {
JPanel contentPane = new JPanel(new BorderLayout());
contentPane.setOpaque(true);
output = new JTextArea(5, 30);
output.setEditable(false);
scrollPane = new JScrollPane(output);
contentPane.add(scrollPane, BorderLayout.CENTER);
return contentPane;
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("MenuLookDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
MenuLookDemo demo = new MenuLookDemo();
frame.setJMenuBar(demo.createMenuBar());
frame.setContentPane(demo.createContentPane());
frame.setSize(450, 260);
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
эти методы говорят о possitions в пикселях

Если вы попытались использовать [setIconTextGap (...)] (http://docs.oracle.com/javase/7/docs/api/javax/swing/AbstractButton.html#setIconTextGap (int)), а также [setHorizontalTextPosition (...)] (http://docs.oracle.com/javase/7/docs/api/javax/swing/AbstractButton.html#setHorizontalTextPosition (int)) и [setVerticalTextPosition (...)] (http: //docs.oracle.com/javase/7/docs/api/javax/swing/AbstractButton.html#setVerticalTextPosition(int)), а последний - [setHorizontalAlignment (...)] (http://docs.oracle .com/javase/7/docs/api/javax/swing/AbstractButton.html # setHorizontalAlignment (int))? –
Спасибо за ваш ответ! Но это не сработало. –
Ваше приветствие и удержание улыбки, тогда, пожалуйста, проверьте свои изображения, используемые вами, возможно, у них есть что-то с левой стороны, которое занимает это место, удалите это с помощью любого программного обеспечения, такого как Paint, NeroSnapViewer, Gimp и т. Д. :-) –