有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何消除JPanel的透明度

我有一门主课。这个GMate调用formDashboard。按下按钮,出现,我在其中输入数据。按此表单上的OK按钮formContPanel,屏幕会出现。这张表格上附有一个jPanel。该面板采用方法drawCont绘制。如图所示,面板已打印,但表单的其余部分是完全透明的(请参见附图)。绘制的图形正常;它的尺寸比面板小。我清除了一些冰毒的尸体,因为它们不是必需的

enter image description here

以下是代码:

GMate。java

public class GMate {
     static formDashboard formD = new formDashboard();
     public static void main(String[] args) {
         formD.setVisible(true);
         formD.pack();
         formD.setTitle("Graphics Main");
     }
 }

窗体仪表板。java

public class formDashboard extends javax.swing.JFrame {
    formCont formC  = new formCont();

    public formDashboard() {
         initComponents();
     }

     @SuppressWarnings("unchecked")
     private void btnContourActionPerformed(java.awt.event.ActionEvent evt)     {                                           
         formC.setVisible(true);
         formC.pack();
         formC.setTitle("Contour Plot");
       }                                          
 }

formCont。java

public class formContour extends javax.swing.JFrame {
      int N = 50;
       double[] x = new double[N], y = new double[N];
       double[][] z = new double[N][N];
       Color[][] zcol = new Color[N][N];
       double[] Mm;
       String sExpr;
double x0, x1, y0, y1, dx, dy;
double sc;
Color[] cols = new Color[256];

public formContour() {
    initComponents();
}

private void btnOKActionPerformed(java.awt.event.ActionEvent evt) {                                      
    // TODO add your handling code here:
    Mm = new double[2];
    sExpr = "x*y";
    x0 = -5;
    x1 = 5;
    y0 = -5;
    y0 = 5;
    makeGradient();
    calculateZ(sExpr, x0, x1, y0, y1);
    z = calculateZ(sExpr, x0, x1, y0, y1);
    Mm = calculateMinMax(z);
    sc = 255.0 / (Mm[1] - Mm[0]);
    zcol = calculateZColor(z);
    formContPanel formCP = new formContPanel(zcol);
    formCP.pack();
    formCP.setLocationRelativeTo(null);  
    formCP.setVisible(true);
    formCP.setTitle("The Contour");

   formCP.drawCont();
}                                     

double[] calculateMinMax(double[][] z){
}

double[][] calculateZ(String sExpr, double x0, double x1, double y0, double y1){
}

Color[][] calculateZColor(double[][] z){}

Color calculateGradient(float p){}

void makeGradient(){}
}    
}

formContPanel。java

 public class formContPanel extends javax.swing.JFrame {
Color[][] colors;
Graphics gr;

public formContourPlotPanel(Color[][] cols) {
    initComponents();
    colors = cols;
    gr = jPanel1.getGraphics();
}

void drawCont(){
    int i, j;
    for(i=0; i<colors[0].length; i++){
        for(j=0; j<colors[0].length; j++){
            gr.setColor(colors[i][j]);
            gr.drawLine(i, j, i, j);
        }
    }

}

共 (0) 个答案