【发布时间】:2016-02-27 11:05:26
【问题描述】:
我正在尝试让对话框显示带有标签的进度条。我已将标签设置为与 JLabel.Center 居中对齐并使用框。
最初,标签显示为居中,这是我正在寻找的。但是,当更改标签的文本时(通过使用代码“creatingQueriesLabel.setText(text)”,标签现在显示为左对齐。
任何帮助将不胜感激!这是我的代码。
JFrame frame = new JFrame("Creating queries ...");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Box box = Box.createVerticalBox();
JPanel panel = new JPanel();
panel.setLayout(null);
creatingQueriesLabel = new JLabel("Initializing ... ");
creatingQueriesLabel.setSize(480, 160);
creatingQueriesLabel.setLocation(10, 10);
creatingQueriesLabel.setAlignmentX(JLabel.CENTER_ALIGNMENT);
box.setLocation(0, 10);
box.setSize(480, 160);
box.add(creatingQueriesLabel);
progressBar = new JProgressBar();
progressBar.setSize(480, 50);
progressBar.setValue(0);
progressBar.setStringPainted(true);
progressBar.setLocation(creatingQueriesLabel.getX(),
creatingQueriesLabel.getY() + creatingQueriesLabel.getHeight());
panel.add(progressBar);
frame.add(box);
frame.add(panel);
// Display the window.
frame.pack();
frame.setSize(520, 280);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
/**
* Invoked when task's progress property changes.
*/
public void propertyChange(PropertyChangeEvent evt)
{
if ("progress" == evt.getPropertyName())
{
int progress = (Integer) evt.getNewValue();
progressBar.setValue(progress);
}
if ("currentQueryText" == evt.getPropertyName())
{
String text = (String) evt.getNewValue();
creatingQueriesLabel.setText(text);
}
}
【问题讨论】:
-
我故意遗漏了一些代码,因为它没有为这个问题带来任何启示(例如如何调用 propertyChange 以及一切)。 JLabel 上的操作都在这里展示。
标签: java swing alignment jlabel