Java Can';在我拖动打开的窗口之前,我看不到JFrame的内容

Java Can';在我拖动打开的窗口之前,我看不到JFrame的内容,java,swing,window,jframe,Java,Swing,Window,Jframe,这实际上是我的第一个完整程序,最终将用于为我正在制作的机器人编写代码。一切都正常,只是当我运行它时,我必须拖动打开窗口才能看到其中的内容 关于如何修复它的任何建议。 框架2-“单击以生成文件”起作用。 框架-带有按钮网格的框架,是我必须拖动打开才能看到的框架 这是frame的设置文件(不起作用的文件) 封装网格; //三月十三日至四月十一日 导入java.awt.GridLayout; 导入javax.swing.JButton; 导入javax.swing.JFrame; 导入java.awt

这实际上是我的第一个完整程序,最终将用于为我正在制作的机器人编写代码。一切都正常,只是当我运行它时,我必须拖动打开窗口才能看到其中的内容

关于如何修复它的任何建议。 框架2-“单击以生成文件”起作用。 框架-带有按钮网格的框架,是我必须拖动打开才能看到的框架

这是frame的设置文件(不起作用的文件)

封装网格;
//三月十三日至四月十一日
导入java.awt.GridLayout;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入java.awt.*;
导入java.awt.event.*;
@抑制警告(“串行”)
公共类ButtonGrid扩展JFrame{
公共静态整数点击[][]=新建整数[20][40];
静态JButton按钮[]=新JButton[800];
静态int x;
静态整数计数=1;
公共静态int clickedfinal[];
int值;
公共ButtonGrid(){
JFrame=新JFrame();
框架。设置尺寸(400200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
GridLayout grid=新的GridLayout(20,40,10,8);
框架布局(网格);
对于(int c=0;c<20;c++){
对于(int d=0;d<40;d++){
点击[c][d]=0;
}
}
对于(x=0;x<800;x++){
按钮[x]=新的JButton();
按钮[x].setActionCommand(整数.toString(x));
frame.add(按钮[x]);
按钮[x]。背景(颜色。浅灰色);
按钮[x]。设置不透明(真);
thehandler=新的thehandler();
按钮[x].addActionListener(处理程序);
}
}
公共类处理程序实现ActionListener{
已执行的公共无效操作(操作事件e){
对于(;;){
value=Integer.parseInt(如getActionCommand());
按钮[值].setBackground(颜色.黑色);
int r=值%40;
int m=((值-(值%40))/40);
//学习如何取整
点击[m][r]=1;
打破
}
}
}
公共静态void main(字符串[]args){
新的ButtonGrid();
}
}
这是frame2的文件,它确实有效;要测试,只需运行这个

package Grid;

import javax.swing.JButton;
import javax.swing.JFrame;

import Grid.ButtonGrid;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

@SuppressWarnings("serial")
public class Arduinowriter extends JFrame {

    static int t = 1;
    static int buttonpressed;
    static int total;
    static String Code;
    static String oldcode;

    public Arduinowriter() {
        JFrame frame2 = new JFrame("Build File");
        JButton button = new JButton("Click to Build File");
        frame2.setSize(400, 400);
        frame2.add(button);
        frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame2.setVisible(true);

        button.setActionCommand(Integer.toString(1));
        thehandler handler = new thehandler();
        button.addActionListener(handler);

    }

    public class thehandler implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            buttonpressed = Integer.parseInt(e.getActionCommand());

            String newLine = System.getProperty("line.separator");
            String Motor2_half = "digitalWrite(Motor2, HIGH);" + newLine
                    + "delay(500)" + newLine + "digitalWrite(Motor2, LOW)";

            String Motor2_one = "digitalWrite(Motor2, HIGH);" + newLine
                    + "delay(1000);" + newLine + "digitalWrite(Motor2, LOW);";
            String Servo1_dispense = "digitalWrite(Servo1, HIGH);" + newLine
                    + "delay(1000)" + newLine + "digitalWrite(Servo1, LOW);";

            String Motor2_back = "digitalWrite(Motor2back, High" + newLine
                    + "delay(6000)" + newLine + "digitalWrite(Motor2back, Low)";

            String Motor1_forward = "digitalWrite(Motor1, HIGH);" + newLine
                    + "delay(1000);" + newLine + "digitalWrite(Motor1, LOW);";

            String dispenseCycle = (Motor2_one + newLine + Servo1_dispense
                    + " //Domino" + newLine);

            String skipCycle = (Motor2_one + newLine);

            String backCycle = (Motor1_forward + newLine + Motor2_back + newLine);

            while (buttonpressed == 1) {

                for (int x = 0; x < 20; x++) {

                    Code = oldcode + "//Line " + (x + 1);
                    oldcode = Code;
                    yloop: for (int y = 0; y < 40; y++) {

                        boolean empty = true;
                        for (int check = y; check < 39; check++) {

                            if (ButtonGrid.clicked[x][check] == 1) {
                                empty = false;
                                System.out.println(x + " not empty");
                            }
                        }

                        if (ButtonGrid.clicked[x][y] == 1 && y == 0) {
                            Code = oldcode + newLine + Servo1_dispense
                                    + " //Domino" + newLine;
                        } else if (ButtonGrid.clicked[x][y] == 1) {
                            Code = oldcode + newLine + dispenseCycle + newLine;
                        }

                        else if (ButtonGrid.clicked[x][y] == 0
                                && empty == false) {
                            Code = oldcode + newLine + skipCycle + newLine;
                        } else {
                            Code = oldcode + newLine + backCycle + newLine;
                            oldcode = Code;
                            break yloop;
                        }
                        oldcode = Code;

                    }
                }

                try {

                    BufferedWriter out = new BufferedWriter(new FileWriter(
                            "C:\\ArduinoCode.txt"));
                    out.write(Code);
                    out.close();
                } catch (IOException g) {
                    System.out.println("Exception ");

                }

                return;
            }

        }

    }

    // button

    public static void main(String[] args) {

        new ButtonGrid();
        new Arduinowriter();

    }
}
封装网格;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入Grid.ButtonGrid;
导入java.awt.event.ActionEvent;
导入java.awt.event.ActionListener;
导入java.io.BufferedWriter;
导入java.io.FileWriter;
导入java.io.IOException;
@抑制警告(“串行”)
公共类编写器扩展JFrame{
静态int t=1;
按下静态int按钮;
静态整数合计;
静态字符串代码;
静态字符串代码;
公共作家(){
JFrame frame2=新的JFrame(“构建文件”);
JButton button=newjbutton(“单击以生成文件”);
框架2.设置大小(400400);
框架2.添加(按钮);
frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame2.setVisible(true);
setActionCommand(Integer.toString(1));
thehandler=新的thehandler();
addActionListener(处理程序);
}
公共类处理程序实现ActionListener{
已执行的公共无效操作(操作事件e){
buttonpressed=Integer.parseInt(例如getActionCommand());
字符串newLine=System.getProperty(“line.separator”);
字符串Motor2_half=“数字写入(Motor2,高);”+换行符
+“延迟(500)”+换行符+“数字写入(马达2,低)”;
字符串Motor2_one=“数字写入(Motor2,高);”+换行符
+“延迟(1000);”+换行符+“数字写入(马达2,低);”;
字符串Servo1_dispense=“数字写入(Servo1,高);”+换行符
+“延迟(1000)”+换行符+“数字写入(伺服1,低);”;
字符串Motor2_back=“数字写入(Motor2back,High”+换行符
+“延迟(6000)”+换行符+“数字写入(Motor2back,低)”;
字符串Motor1_forward=“数字写入(Motor1,高);”+换行符
+“延迟(1000);”+换行符+“数字写入(马达1,低);”;
字符串分配循环=(马达2\u一+换行+伺服1\u分配
+“//Domino”+换行符);
字符串skipCycle=(Motor2_one+换行符);
字符串反向循环=(Motor1\u前进+换行+Motor2\u后退+换行);
while(按下按钮==1){
对于(int x=0;x<20;x++){
Code=oldcode+“//行”+(x+1);
oldcode=代码;
yloop:for(int y=0;y<40;y++){
布尔空=真;
对于(int check=y;check<39;check++){
如果(ButtonGrid.clicked[x][check]==1){
空=假;
System.out.println(x+“非空”);
}
}
如果(ButtonGrid.clicked[x][y]==1&&y==0){
代码=旧代码+新行+伺服1\u分配
+“//Domino”+换行符;
}else if(ButtonGrid.clicked[x][y]==1){
代码=旧代码+换行符+循环符+换行符;
}
如果(ButtonGrid.clicked[x][y]==0,则为else
&&空==假){
代码=旧代码+换行符+skipCycle+换行符;
}否则{
代码=旧代码+换行符+反向循环+换行符;
oldcode=代码;
打破僵局;
}
奥德克
package Grid;

import javax.swing.JButton;
import javax.swing.JFrame;

import Grid.ButtonGrid;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

@SuppressWarnings("serial")
public class Arduinowriter extends JFrame {

    static int t = 1;
    static int buttonpressed;
    static int total;
    static String Code;
    static String oldcode;

    public Arduinowriter() {
        JFrame frame2 = new JFrame("Build File");
        JButton button = new JButton("Click to Build File");
        frame2.setSize(400, 400);
        frame2.add(button);
        frame2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame2.setVisible(true);

        button.setActionCommand(Integer.toString(1));
        thehandler handler = new thehandler();
        button.addActionListener(handler);

    }

    public class thehandler implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            buttonpressed = Integer.parseInt(e.getActionCommand());

            String newLine = System.getProperty("line.separator");
            String Motor2_half = "digitalWrite(Motor2, HIGH);" + newLine
                    + "delay(500)" + newLine + "digitalWrite(Motor2, LOW)";

            String Motor2_one = "digitalWrite(Motor2, HIGH);" + newLine
                    + "delay(1000);" + newLine + "digitalWrite(Motor2, LOW);";
            String Servo1_dispense = "digitalWrite(Servo1, HIGH);" + newLine
                    + "delay(1000)" + newLine + "digitalWrite(Servo1, LOW);";

            String Motor2_back = "digitalWrite(Motor2back, High" + newLine
                    + "delay(6000)" + newLine + "digitalWrite(Motor2back, Low)";

            String Motor1_forward = "digitalWrite(Motor1, HIGH);" + newLine
                    + "delay(1000);" + newLine + "digitalWrite(Motor1, LOW);";

            String dispenseCycle = (Motor2_one + newLine + Servo1_dispense
                    + " //Domino" + newLine);

            String skipCycle = (Motor2_one + newLine);

            String backCycle = (Motor1_forward + newLine + Motor2_back + newLine);

            while (buttonpressed == 1) {

                for (int x = 0; x < 20; x++) {

                    Code = oldcode + "//Line " + (x + 1);
                    oldcode = Code;
                    yloop: for (int y = 0; y < 40; y++) {

                        boolean empty = true;
                        for (int check = y; check < 39; check++) {

                            if (ButtonGrid.clicked[x][check] == 1) {
                                empty = false;
                                System.out.println(x + " not empty");
                            }
                        }

                        if (ButtonGrid.clicked[x][y] == 1 && y == 0) {
                            Code = oldcode + newLine + Servo1_dispense
                                    + " //Domino" + newLine;
                        } else if (ButtonGrid.clicked[x][y] == 1) {
                            Code = oldcode + newLine + dispenseCycle + newLine;
                        }

                        else if (ButtonGrid.clicked[x][y] == 0
                                && empty == false) {
                            Code = oldcode + newLine + skipCycle + newLine;
                        } else {
                            Code = oldcode + newLine + backCycle + newLine;
                            oldcode = Code;
                            break yloop;
                        }
                        oldcode = Code;

                    }
                }

                try {

                    BufferedWriter out = new BufferedWriter(new FileWriter(
                            "C:\\ArduinoCode.txt"));
                    out.write(Code);
                    out.close();
                } catch (IOException g) {
                    System.out.println("Exception ");

                }

                return;
            }

        }

    }

    // button

    public static void main(String[] args) {

        new ButtonGrid();
        new Arduinowriter();

    }
}