JTextPane 中的 JProgressBar
JProgressBar in JTextPane
我在我的文本窗格中添加了一个进度条,但我无法调整添加的进度条的宽度(可以调整高度)。你能帮我解决这个问题吗,并告诉我完成后如何删除进度条。
JProgressBar progressBar = new JProgressBar();
progressBar.setStringPainted(true);
progressBar.setPreferredSize(new Dimension(50, 15));
progressBar.setMinimum(0);
progressBar.setMaximum((int) file.length());
textPane.setSelectionStart(textPane.getText().length());
textPane.setSelectionEnd(textPane.getText().length());
textPane.insertComponent(progressBar);
我想您是在问如何为 JProgressBar
设置首选宽度,对吗?
如果这是你的问题,你应该使用 setMaximumSize
而不是 setPreferredSize
:
JProgressBar progressBar = new JProgressBar();
progressBar.setStringPainted(true);
//progressBar.setPreferredSize(new Dimension(50, 15));
progressBar.setMaximumSize(new Dimension(50, 15)); // This line instead of above line
progressBar.setMinimum(0);
progressBar.setMaximum((int) file.length());
[编辑]
要删除组件,您应该假设 JTextPane
中的组件为某些字符,然后从 JTextPane's Document
对象中删除它们。我还假定了一个临时 JButton
来引发删除事件:
JButton b = new JButton("Remove!");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
textPane.getDocument().remove(0, 1);
} catch (BadLocationException e1) {
e1.printStackTrace();
}
}
});
祝你好运。
我在我的文本窗格中添加了一个进度条,但我无法调整添加的进度条的宽度(可以调整高度)。你能帮我解决这个问题吗,并告诉我完成后如何删除进度条。
JProgressBar progressBar = new JProgressBar();
progressBar.setStringPainted(true);
progressBar.setPreferredSize(new Dimension(50, 15));
progressBar.setMinimum(0);
progressBar.setMaximum((int) file.length());
textPane.setSelectionStart(textPane.getText().length());
textPane.setSelectionEnd(textPane.getText().length());
textPane.insertComponent(progressBar);
我想您是在问如何为 JProgressBar
设置首选宽度,对吗?
如果这是你的问题,你应该使用 setMaximumSize
而不是 setPreferredSize
:
JProgressBar progressBar = new JProgressBar();
progressBar.setStringPainted(true);
//progressBar.setPreferredSize(new Dimension(50, 15));
progressBar.setMaximumSize(new Dimension(50, 15)); // This line instead of above line
progressBar.setMinimum(0);
progressBar.setMaximum((int) file.length());
[编辑]
要删除组件,您应该假设 JTextPane
中的组件为某些字符,然后从 JTextPane's Document
对象中删除它们。我还假定了一个临时 JButton
来引发删除事件:
JButton b = new JButton("Remove!");
b.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
try {
textPane.getDocument().remove(0, 1);
} catch (BadLocationException e1) {
e1.printStackTrace();
}
}
});
祝你好运。