zxd_8 2017-01-10 02:22 采纳率: 0%
浏览 1763

把JPanel添加到JScrollPane

package com.frame;

import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Component;
import java.awt.Container;
import java.awt.Frame;
//import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ScrollPaneConstants;

@SuppressWarnings("serial")
public class testjm1 extends JFrame implements ActionListener{
JButton btnquit,btnsubmit;
JLabel labtitle,lab1[][],lab2[][],lab3[][];
JTextField text1[][],text2[][];
JTextArea txtarea;
JScrollPane Jspane;
int i,j,k;
JPanel pp[][],ppp;
double cbmatrix1[][];//成本转换邻接矩阵1
double cbmatrix2[][];//成本转换邻接矩阵2
int num;
public double[][] getCbmatrix1() {
return cbmatrix1;
}

public void setCbmatrix1(double[][] cbmatrix1) {
    this.cbmatrix1 = cbmatrix1;
}

public double[][] getCbmatrix2() {
    return cbmatrix2;
}

public void setCbmatrix2(double[][] cbmatrix2) {
    this.cbmatrix2 = cbmatrix2;
}
public void init(){
    Jspane = new JScrollPane();
    //分别设置水平和垂直滚动条总是出现
    Jspane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    Jspane.setVerticalScrollBarPolicy( JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
    //分别设置水平和垂直滚动条自动出现
    // Jspane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
    // Jspane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
    }
public testjm1(){
    super("图中各节点的成本邻接矩阵信息采集");
    setVisible(true);
    this.setFont(new   java.awt.Font("Dialog",1,15));       
    num=8;
    ppp=new JPanel();       
    pp=new JPanel[num+1][num+1];
    lab1=new JLabel[num+1][num+1];
    lab2=new JLabel[num+1][num+1];
    lab3=new JLabel[num+1][num+1];
    text1=new JTextField[num+1][num+1];
    text2=new JTextField[num+1][num+1];
    cbmatrix1=new double[num+1][num+1];
    cbmatrix2=new double[num+1][num+1];
    btnquit=new JButton("退出");
    btnsubmit=new JButton("提交");
    labtitle=new JLabel("请输入图中各节点之间的权重区间:");
    txtarea=new JTextArea();
    setLayout(null);
    //setSize(300 + num * 200, 300 + num * 200);
    setSize(800,700);
    //ppp.setBounds(0, 0,300 + num * 200,300 + num * 200);
    ppp.setBounds(0,0,650,650);
    ppp.setLayout(null);
    this.add(ppp);
    ppp.add(txtarea);
    ppp.add(labtitle);
    ppp.add(btnquit);
    ppp.add(btnsubmit);
    labtitle.setBounds(30, 50, 280, 30);
    btnsubmit.setBounds(320, 50, 80, 30);
    JScrollPane ScrollPane = new JScrollPane(ppp);      
    ScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); 
    ScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);

     //ScrollPane.setBounds(0, 0,300 + num * 200,300 + num * 200);
    ScrollPane.setBounds(0,0,650,650);
     this.getContentPane().add(ScrollPane);

     this.setVisible(true);
    btnsubmit.addActionListener(this);
    for (i = 0; i <= num; i++) {
        Component heng = add(new Label("节点" + i));
            ppp.add(heng);
          heng.setBounds(150 + i * 180, 100 , 50, 30);
        Component shu = add(new Label("节点" + i));
        ppp.add(shu);
        shu.setBounds(30, 145 + i * 50, 50, 30);// 120>130
    }
    for (i = 0; i <= num; i++) {
        for (j = 0; j <= num; j++) {
            k=0;
            lab1[i][j]=new JLabel("[");
            lab1[i][j].setSize(5, 25);
            lab2[i][j]=new JLabel(",");
            lab2[i][j].setSize(5, 25);
            lab3[i][j]=new JLabel("]");
            lab3[i][j].setSize(5, 25);
            if (i == j) {   
                text1[i][j]=new JTextField("0",2);                  
                text2[i][j]=new JTextField("0",2);
                pp[i][j]=new JPanel();
                ppp.add(pp[i][j]);
                pp[i][j].add(lab1[i][j]);
                pp[i][j].add(text1[i][j]);
                pp[i][j].add(lab2[i][j]);
                pp[i][j].add(text2[i][j]);
                pp[i][j].add(lab3[i][j]);

                pp[i][j].setBounds(100 + j * 180, 140 + i * 50, 170, 25);
            } else {
                text1[i][j]=new JTextField(2);
                text2[i][j]=new JTextField(2);              
                pp[i][j]=new JPanel();
                ppp.add(pp[i][j]);
                pp[i][j].add(lab1[i][j]);
                pp[i][j].add(text1[i][j]);
                pp[i][j].add(lab2[i][j]);
                pp[i][j].add(text2[i][j]);
                pp[i][j].add(lab3[i][j]);
                pp[i][j].setBounds(100 + j * 180, 140 + i * 50, 170, 25);               
            }

        }
    }

}

@Override
public void actionPerformed(ActionEvent e) {
    if(e.getSource()==btnsubmit){
        //System.out.println("########");
    for(int i=0;i<=num;i++)
        for(int j=0;j<=num;j++){

// if(text1[i][j].getText()!=null||text1[i][j].getText()!=""){
// cbmatrix1[i][j]=Integer.parseInt(text1[i][j].getText());
// }
if(text1[i][j].getText().trim().equals("")){
cbmatrix1[i][j]=0;
}
else
cbmatrix1[i][j]=Double.parseDouble(text1[i][j].getText());
if(text2[i][j].getText().trim().equals("")){
cbmatrix2[i][j]=0;
}
else
cbmatrix2[i][j]=Double.parseDouble(text2[i][j].getText());
}
this.dispose();
}
}
public static void main(String[] args) {
testjm1 t=new testjm1();
}
}
把JPanel添加到JScrollPane里面,运行之后JScrollPane没办法显示JPanel中所有组件

  • 写回答

1条回答

  • dabocaiqq 2017-01-21 15:08
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)