У меня есть некоторые JLabel
компоненты в JPanel
(taskPanel
) с BoxLayout
(который находится в панели с GridBagLayout
) и метки отказываются быть приведены в соответствие с правой стороны. Они продолжают выравниваться слева, независимо от того, как я ими манипулирую.JLabel не центрирующие вправо в BoxLayout
Здесь я настроить GridBagConstraints
для панели, которая имеет метки
GridBagConstraints taskPanelC = new GridBagConstraints();
taskPanelC.gridx = 4;
taskPanelC.gridy = 0;
taskPanelC.gridwidth = 1;
taskPanelC.anchor = GridBagConstraints.NORTHEAST;
taskPanelC.weighty = 1;
taskPanelC.weightx = 1;
taskPanelC.insets = new Insets(10, 10, 10, 10);
timePanel.add(taskPanel, taskPanelC);
Вот GridBagConstraints
для панели перед панелью задач
//Setup the gridBagLayout
GridBagConstraints timeTextC = new GridBagConstraints();
timeTextC.gridx = 1;
timeTextC.gridy = 0;
timeTextC.gridwidth = 3;
timeTextC.anchor = GridBagConstraints.CENTER;
timeTextC.weighty = 1;
timeTextC.weightx = 1;
Здесь я добавить заголовок к taskPanel
(Мне все равно, как это выровнено)
taskListLabel = new JLabel("Task List");
taskListLabel.setFont(new Font("Helvetica", Font.BOLD, 24));
taskPanel.add(taskListLabel);
Здесь я добавляю ярлыки, которые я хочу, чтобы они были правильно обоснованы/выровнены. Я пробовал setHorizontalTextPosition
и setAlignmentX
, и оба они не работают, в результате чего текст остается выравниванным влево. Однако, когда я попытался setAlignmentX
, заголовок стал выровненным с метками задачи
JLabel task = new JLabel(name, SwingConstants.RIGHT);
//Allow deleting of the label
task.addMouseListener(new ClickListener());
//Add task to the task panel
taskPanel.add(task);
Это то, что в настоящее время он выглядит как img http://image.prntscr.com/image/6dca2d88cc194212b1a27b6c1028f537.png
Я хочу, чтобы текст под список задач, чтобы быть выровнен по правому краю, так что время всегда на правой
Вот ссылка на полный код в случае резюме было недостаточно: Github Repo
Мы не хотим, чтобы фрагменты кода или полный код. Скорее вы захотите создать и опубликовать действительный [mcve]. Пожалуйста, посмотрите [помощь], а также разделы [как спросить хорошие вопросы] (http://stackoverflow.com/help/how-to-ask) для получения дополнительной информации о том, как улучшить свой вопрос и увеличить свои шансы получить достойную помощь. –
'taskListLabel.setFont (новый шрифт (« Helvetica », Font.BOLD, 24));' Не в этом окне Windows. По умолчанию шрифт unecorated (без засечек) - Arial, а Helvetica просто недоступен. Лучше использовать константу для неупорядоченного шрифта, а именно 'Font.SANS_SERIF'. Это будет использовать Helvetica для OS X, Arial для Windows и все, что не используется по умолчанию, для unixorated на системах * nix. –
Ahh Я вижу, спасибо, я хотел использовать константу, но не смог найти ее. – kenyunot