【问题标题】:Connecting JFrame to JPanel using JButton, Problems with JTextFields [duplicate]使用 JButton 将 JFrame 连接到 JPanel,JTextFields 的问题 [重复]
【发布时间】:2014-02-10 16:36:00
【问题描述】:

我的问题是让我的 Main 类和 Journal 类连接在一起,在 Main 类中用户将输入两个变量并单击按钮创建表,在 Journal 类中,它将获取两个变量并使其通过在将它们添加到表中之前的一个过程,所以我需要 JTextField1 作为变量 a 和 JTextField2 作为变量 b。

我使用netbeans创建主类和我自己创建表类的方法请帮助!谢谢!这是当我右键单击 > 事件 > 操作 > 执行的操作时 Netbeans 告诉我编辑的主类的一部分

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
     int data1 = Integer.parseInt(jTextField1.getText());
     int data2 = Integer.parseInt(jTextField2.getText());

}             

这是我的代码:

package Components;

/**
 *
 * @author dustinpx2014
 */

import java.awt.*;
import java.util.*;
import javax.swing.*;
import javax.swing.table.*;
public class Journal extends JPanel
{
    private JTable table;
    private int a;//Number of Students
    private int b;// Length of Trip
    public Journal() 
    {

        String colN1 = "Date";
        String colN2 = "Student"; 

        int c = a*2/b; // Determining # of Journals
        int col = c*2; // Creating two columns for every journal(Day and Student)
        String[] columnNames = new String[col]; //For Loop: inserting column names
        for(int colF = 0; colF < col; colF++)
        {
            if(colF%2 == 0)
            {
                columnNames[colF] = colN1;
            }
            else
            {
                columnNames[colF] = colN2;
            }
        }
        int row = b; //row = number of days
        int d = 1; //day number
        int s = 1; //student number
        int x = 0; //counter for the # of times students write
        int z = 1; // student number(no limit)
        int z1 = a/2; // student number 2
        int x1 = 0; // counter for the # of times students write 2
        int x2 = 0;
        int w = 1;
        Object[][] data = new Object[row][col];

        for (int col1 = 0; col1 < data[0].length; col1++)
        {
            for (int row1 = 0; row1<data.length; row1++)//goes through the table by column
            {
                if(d > b) //reseting the date
                {
                    d = 1;
                }
                if(s > a && x <= 2) //reseting student number and adds count
                {
                    s = 1;
                    x++;
                }
                if(z > a)
                {
                    z = 1;
                }
                if(z1 > a && x1 <= 2)
                {
                    z1 = 1;
                    x1++;
                }
                if (w>a)
                {
                    w++;
                }
                if(col1%2 == 0) //inserts the day
                {
                    data[row1][col1]= "Day " + d;
                    d++;
                }
                else if (s!=data[row1][col1])//inserts student number
                {
                    data[row1][col1]= s;
                    s++;
                    z++;
                    w++;
                }
                for (int col2 = 1; col2 < data[0].length; col2++)
                {
                    for (int row2 = 0; row2<data.length; row2++)//goes through the table by column
                    {
                        if(z == data[row2][col2] && col2%2!=0)//checks for repeats and replaces them
                        {

                            for (int y = 0; y < col; y++) //checking all columns
                            {
                                if (z1 == a/2 && x1 <= 5) //adds count
                                {
                                    x1++;
                                }
                                else if(z1 > a && x1 <= 5)
                                {
                                    z1 = 1;
                                    x1++;

                                }
                                if(z == data[row2][y])
                                {
                                    data[row2][col2] = z1;
                                    z1++;
                                    w++;
                                }

                            }
                        }
                    }
                }
                for (int row3 = 1; row3 < data.length; row3++)
                {
                    for (int col3 = 0; col3<data[0].length; col3++)//goes through the table by rows
                    {
                        if(w == data[row3][col3] && col3%2!=0)//checks for repeats and replaces them
                        {
                            for(int y2 = 0; y2 < col; y2++)
                            {
                                if(
                                row3<row-1 && 
                                row3> 1 && 
                                w==data[row3+1][y2] && 
                                w==data[row3-1][y2] &&
                                w==data[row3][y2]
                                ) //checks rows
                                {
                                    data[row3][col3] = 0;

                                }
                            }
                        }
                    }
                }
            }
        }

        JTable table = new JTable(data, columnNames);
        table.setPreferredScrollableViewportSize(table.getPreferredSize());
        JScrollPane scrollPane = new JScrollPane(table);
        add(scrollPane);
    }

    public JTable getTable() {
        return table;
    }

    private static void gui()
    {
        JFrame gui = new JFrame();
        gui.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        gui.setTitle("Journal List");
        gui.setSize(700,200);
        gui.setLocationRelativeTo(null);
        gui.setVisible(true);
        gui.add(new Journal());
    }


}

请帮助在我的代码中添加或删除任何内容以使其正常工作,谢谢 :)

【问题讨论】:

  • 你的问题不是很清楚尝试解释更多
  • 我需要让 JButton 打开 Journal 类中的 JTable 并将 JTextFields 中的整数传输到 Journal 类中的变量 a 和 b 中
  • 你说的打开JTable是什么意思 jtable就像普通表你的意思是创建JTable 举个例子
  • 点击 JButton 时,表格应打开并根据从 JTextField 中获取的变量进行排列
  • 哇,这不是在玩杂耍的编程 :) 只是在开玩笑

标签: java swing jbutton jtextfield


【解决方案1】:

把它写在你的收缩器上

public static void main(String args[]){
Journal is= new Journal();


}
public Journal() 
{...}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 2015-10-08
    • 2014-06-04
    相关资源
    最近更新 更多