![](/img/trans.png)
[英]How do I get my Card (JComponent) to appear fully in my JPanel when I add it to my JFrame?
[英]How can I get my JProgressBar to appear in my JPanel?
我已經花了很長時間查看該代碼,並且不知道如何讓我的JProgressBar真正出現在GUI上。 當我運行該應用程序時,JLabel會出現在JPanel中,但JProgressBar卻沒有,如何解決此問題?
(注意:JProgressBar確實可以工作和更新,只是它沒有出現在GUI上)
jPanel9.setLayout(new BorderLayout());
jPanel9.add(new JLabel(theTask.getName() + theTask.getDes()), BorderLayout.NORTH);
JProgressBar progress = new JProgressBar(0, theTask.getMax());
progress.setStringPainted(true);
progress.setBorderPainted(true);
progress.setValue(theTask.getProgress());
progress.setString(theTask.getProgress() + "/" + progress.getMaximum());
progress.setPreferredSize(new Dimension(100,100));
progress.setVisible(true);
jPanel9.add(progress, BorderLayout.SOUTH);
jPanel9.revalidate();
jPanel9.repaint();
System.out.println(progress.getString());
System.out.println("Progress: " + theTask.getProgress());
System.out.println("Max: " + theTask.getMax());
我通過制作一個自定義面板並將其放到我的gui中來解決了這個問題,這並不是我想要的,但是它完成了工作:
public class ProgressPanel extends javax.swing.JPanel {
/**
* Creates new form ProgressPanel
*/
public ProgressPanel() {
initComponents();
jProgressBar1.setMinimum(0);
}
public ProgressPanel(int max, String s)
{
jProgressBar1.setMinimum(0);
jProgressBar1.setMaximum(max);
changeLabel(s);
initComponents();
}
public void setMax(int i)
{
jProgressBar1.setMaximum(i);
}
public void changeProgress(int i)
{
jProgressBar1.setValue(i);
jProgressBar1.setString(i + "/" + jProgressBar1.getMaximum());
}
public void changeLabel(String s)
{
jLabel1.setText(s);
}
/**
* This method is called from within the constructor to initialize the form.
* WARNING: Do NOT modify this code. The content of this method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
jProgressBar1 = new javax.swing.JProgressBar();
setLayout(new java.awt.BorderLayout());
jLabel1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
jLabel1.setText("jLabel1");
add(jLabel1, java.awt.BorderLayout.PAGE_START);
jProgressBar1.setFont(new java.awt.Font("Tahoma", 0, 14)); // NOI18N
add(jProgressBar1, java.awt.BorderLayout.CENTER);
}// </editor-fold>
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JProgressBar jProgressBar1;
// End of variables declaration
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.