上传备份

wjdr
王兵 1 year ago
parent e58fbeb3a0
commit 79521e8700

@ -3,7 +3,6 @@
<component name="Encoding" defaultCharsetForPropertiesFiles="UTF-8">
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources/lib" charset="UTF-8" />
<file url="PROJECT" charset="UTF-8" />
</component>
</project>

@ -61,6 +61,49 @@
<inspection_tool class="AlibabaUnsupportedExceptionWithModifyAsList" enabled="false" level="CRITICAL" enabled_by_default="false" />
<inspection_tool class="AlibabaUseQuietReferenceNotation" enabled="false" level="MAJOR" enabled_by_default="false" />
<inspection_tool class="AlibabaUseRightCaseForDateFormat" enabled="false" level="CRITICAL" enabled_by_default="false" />
<inspection_tool class="JavaDoc" enabled="true" level="WARNING" enabled_by_default="true">
<option name="TOP_LEVEL_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="INNER_CLASS_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="METHOD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="@return@param@throws or @exception" />
</value>
</option>
<option name="FIELD_OPTIONS">
<value>
<option name="ACCESS_JAVADOC_REQUIRED_FOR" value="none" />
<option name="REQUIRED_TAGS" value="" />
</value>
</option>
<option name="IGNORE_DEPRECATED" value="false" />
<option name="IGNORE_JAVADOC_PERIOD" value="true" />
<option name="IGNORE_DUPLICATED_THROWS" value="false" />
<option name="IGNORE_POINT_TO_ITSELF" value="false" />
<option name="myAdditionalJavadocTags" value="date" />
</inspection_tool>
<inspection_tool class="MapOrSetKeyShouldOverrideHashCodeEquals" enabled="false" level="CRITICAL" enabled_by_default="false" />
<inspection_tool class="unused" enabled="false" level="WARNING" enabled_by_default="false">
<option name="LOCAL_VARIABLE" value="true" />
<option name="FIELD" value="true" />
<option name="METHOD" value="true" />
<option name="CLASS" value="true" />
<option name="PARAMETER" value="true" />
<option name="REPORT_PARAMETER_FOR_PUBLIC_METHODS" value="true" />
<option name="ADD_MAINS_TO_ENTRIES" value="true" />
<option name="ADD_APPLET_TO_ENTRIES" value="true" />
<option name="ADD_SERVLET_TO_ENTRIES" value="true" />
<option name="ADD_NONJAVA_TO_ENTRIES" value="true" />
</inspection_tool>
</profile>
</component>

@ -13,7 +13,7 @@
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>11</java.version>
<java.version>8</java.version>
<maven.test.skip>true</maven.test.skip>
</properties>
@ -49,15 +49,6 @@
<artifactId>jintellitype</artifactId>
<version>1.4.0</version>
</dependency>
<!-- 皮肤依赖 -->
<dependency>
<groupId>org.jb2011.lnf</groupId>
<artifactId>beautyeye</artifactId>
<version>1.0.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/beautyeye_lnf.jar</systemPath>
</dependency>
</dependencies>
<build>

@ -39,6 +39,7 @@ public class JMacro {
// 机器人初始化
this.robot = new Robot();
this.robot.setAutoDelay(100);
this.legend = new File("legend");
}
public JMacro(File legend) throws AWTException {
@ -46,6 +47,14 @@ public class JMacro {
this.legend = legend;
}
public File getLegend() {
return legend;
}
public void setLegend(File legend) {
this.legend = legend;
}
/**
*
*/

@ -1,9 +1,10 @@
package com.example.jmacro.wjdr;
import com.example.jmacro.wjdr.base.ScreenRect;
/**
* 线
*
*
* @author wangbing
* @version 0.0.1
* @since 1.8
@ -15,4 +16,11 @@ public abstract class JMacroThread implements Runnable {
public JMacroThread(JMacro jMacro) {
this.jMacro = jMacro;
}
/**
*
*
* @return
*/
public abstract ScreenRect getScreen();
}

@ -0,0 +1,42 @@
package com.example.jmacro.wjdr;
import com.example.jmacro.wjdr.demo.DemoThread;
import com.example.jmacro.wjdr.ui.FXMLUtil;
import com.example.jmacro.wjdr.util.ResourceUtil;
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;
/**
* UI
*/
public class JMainApplication extends Application {
@Override
public void start(Stage stage) throws Exception {
stage.setTitle("无限工具");
stage.setMinWidth(400);
stage.setMinHeight(300);
FXMLLoader mainLoader = FXMLUtil.load("main.fxml");
stage.setScene(new Scene(mainLoader.getRoot()));
stage.centerOnScreen();
stage.show();
stage.setOnCloseRequest(event -> {
stage.close();
System.exit(0);
});
// 设置图标
Image icon = new Image(ResourceUtil.getInput("/icon.png"));
stage.getIcons().add(icon);
// 展示UI
stage.show();
// 启动服务
JMainService.start();
}
public static void main(String[] args) {
launch(args);
}
}

@ -0,0 +1,30 @@
package com.example.jmacro.wjdr;
import com.example.jmacro.wjdr.base.ScreenRect;
import com.example.jmacro.wjdr.util.Capture;
import com.example.jmacro.wjdr.util.Logger;
import javafx.fxml.FXML;
import java.awt.*;
import java.io.File;
public class JMainController {
/**
*
*/
@FXML
private void onCapture() throws AWTException {
ScreenRect screen = JMainService.getInstance().getThread().getScreen();
File legend = JMainService.getInstance().getMacro().getLegend();
if (screen == null) {
Logger.error("请等待窗口定位");
return;
}
try {
new Capture(screen.getLeft(), screen.getTop(), legend);
} catch (AWTException awtException) {
awtException.printStackTrace();
}
}
}

@ -0,0 +1,124 @@
package com.example.jmacro.wjdr;
import cn.hutool.core.thread.ThreadUtil;
import com.example.jmacro.wjdr.demo.DemoThread;
import com.example.jmacro.wjdr.util.Logger;
import java.awt.*;
import java.io.File;
/**
* 线
*
* @author wangbing
* @version 0.0.1
* @since 1.8
*/
public class JMainService {
private static JMainService instance;
private JMacroThread thread;
private JMainService() throws AWTException {
// 脚本初始化
Logger.info("初始化脚本");
jMacro = new JMacro();
thread = new DemoThread(jMacro);
}
public static synchronized JMainService getInstance() throws AWTException {
if (instance == null) {
JMainService.instance = new JMainService();
}
return instance;
}
public JMacroThread getThread() {
return thread;
}
public JMacro getMacro() {
return jMacro;
}
/**
*
*/
private final JMacro jMacro;
/**
*
*/
private boolean run;
public static void start() throws AWTException {
// 启动服务
Logger.info("启动服务");
JMainService.getInstance().run = true;
// 启动后台线程
JMainService.getInstance().serviceThread.start();
}
public static void stop() throws AWTException {
Logger.info("停止服务");
JMainService.getInstance().run = false;
JMainService.getInstance().serviceThread.interrupt();
}
/**
*
*
* @param legend
*/
public void setLegend(File legend) {
if (this.jMacro != null) {
this.jMacro.setLegend(legend);
}
}
/**
* 线
*/
public Thread serviceThread = new Thread() {
@Override
public void run() {
while (run) {
ThreadUtil.sleep(1000);
if (thread == null) {
Logger.error("脚本线程未设置");
continue;
}
thread.run();
// 立即执行
// if (noDelay) {
// if (schedule != null) {
// schedule.cancel(true);
// }
//
// noDelay = false;
// Logger.info("启动线程");
// schedule = TaskUtil.schedule(new MacroThread(jMacro), 0, TimeUnit.SECONDS);
// continue;
// }
// if (schedule != null) {
// continue;
// }
//
// if (DateUtil.isIn(DateUtil.date(), DateUtil.parse(workStart), DateUtil.parse(workEnd))) {
// int delay = RandomUtil.randomInt(5, 20);
// Logger.info("等待{}分钟后,重新启动线程", delay);
// schedule = TaskUtil.schedule(new MacroThread(jMacro), delay, TimeUnit.MINUTES);
// }
}
}
};
/**
*
*/
public static void main(String[] args) throws AWTException {
new JMainService().start();
}
}

@ -1,258 +0,0 @@
package com.example.jmacro.wjdr;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.thread.ThreadUtil;
import cn.hutool.core.util.RandomUtil;
import com.example.jmacro.wjdr.base.ScreenRect;
import com.example.jmacro.wjdr.task.TaskMineAttack;
import com.example.jmacro.wjdr.task.TaskMining;
import com.example.jmacro.wjdr.task.TaskRewards;
import com.example.jmacro.wjdr.util.Capture;
import com.example.jmacro.wjdr.util.Logger;
import com.example.jmacro.wjdr.util.TaskUtil;
import javax.swing.*;
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.io.File;
import java.net.URL;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
/**
* 线
*
* @author wangbing
* @version 0.0.1
* @since 1.8
*/
public class MainTask extends JFrame {
/**
* 线
*/
private static ScheduledFuture<?> schedule;
/**
*
*/
private final String workStart = "08:00:00";
/**
*
*/
private final String workEnd = "24:00:00";
private boolean noDelay = true;
/**
*
*/
private JMacro jMacro;
/**
*
*/
private ScreenRect gameScreen;
public void start() throws AWTException {
// 加载主题
try {
org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
} catch (Exception e) {
e.printStackTrace();
}
// 设置标题
setTitle("无限工具");
// 设置图标
URL icon = this.getClass().getClassLoader().getResource("icon.png");
setIconImage(ImgUtil.read(icon));
// 脚本初始化
Logger.info("初始化脚本");
jMacro = new JMacro(new File("legend"));
// 设置窗口的宽度和高度
setSize(400, 300); // 设置窗口的宽度为400像素高度为300像素
// 添加一个标签作为示例内容
JButton button = new JButton();
button.setText("采图");
button.setSize(100, 40);
button.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
if (gameScreen == null) {
Logger.error("请等待窗口定位");
return;
}
try {
new Capture(gameScreen.getLeft(), gameScreen.getTop(), new File("legend"));
} catch (AWTException awtException) {
awtException.printStackTrace();
}
}
});
getContentPane().add(button);
// 设置窗口关闭时的操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 启动后台线程
startBack();
center();
// 显示窗口
setVisible(true);
}
/**
*
*/
private void center() {
// 获取屏幕尺寸
java.awt.Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
// 获取窗口尺寸
java.awt.Dimension frameSize = getSize();
// 计算窗口居中位置
setLocation((screenSize.width - frameSize.width) / 2, (screenSize.height - frameSize.height) / 2);
}
/**
* 线
*/
public void startBack() {
Logger.setDebug(true);
new Thread(() -> {
while (true) {
ThreadUtil.sleep(1000);
// 立即执行
if (noDelay) {
if (schedule != null) {
schedule.cancel(true);
}
noDelay = false;
Logger.info("启动线程");
schedule = TaskUtil.schedule(new MacroThread(jMacro), 0, TimeUnit.SECONDS);
continue;
}
if (schedule != null) {
continue;
}
if (DateUtil.isIn(DateUtil.date(), DateUtil.parse(workStart), DateUtil.parse(workEnd))) {
int delay = RandomUtil.randomInt(5, 20);
Logger.info("等待{}分钟后,重新启动线程", delay);
schedule = TaskUtil.schedule(new MacroThread(jMacro), delay, TimeUnit.MINUTES);
}
}
}).start();
}
/**
* 线
*/
public class MacroThread extends JMacroThread {
public MacroThread(JMacro jMacro) {
super(jMacro);
}
@Override
public void run() {
// 定位mumu bar
Logger.info("定位慕慕窗口");
ScreenRect mumu = jMacro.findPic("慕慕_工具栏", 0.95d);
if (mumu == null) {
throw new IllegalStateException("未检测到MuMu请开启MuMu模拟器");
}
Logger.info("定位慕慕窗口成功");
// 计算应用窗口返回
gameScreen = new ScreenRect();
gameScreen.setLeft(mumu.getLeft() - 428);
gameScreen.setTop(mumu.getBottom() + 7);
gameScreen.setRight(mumu.getRight());
gameScreen.setBottom(mumu.getBottom() + 951);
Logger.info("应用窗口位置:" + gameScreen.toString());
Logger.info("应用窗口大小:{}x{}", gameScreen.getRight() - gameScreen.getLeft(), gameScreen.getBottom() - gameScreen.getTop());
// 获取启动图标
Logger.info("定位启动图标");
ScreenRect launch = jMacro.waitAndFindPic(gameScreen, "启动图标", 0.8);
if (launch != null) {
Logger.info("启动图标坐标:", launch.toString());
Logger.info("启动程序");
jMacro.delay();
jMacro.mouseLeftClick(launch);
} else {
Logger.info("启动图标失败,继续定位主界面");
}
Logger.info("定位主界面");
ScreenRect = TaskUtil.timeTask(() -> {
while (true) {
jMacro.delay();
{ // 定位弹框,关闭弹框
Logger.info("检测到广告弹框");
ScreenRect rect = jMacro.matchPic(gameScreen, "城镇_充值_L448,36", 0.8d);
if (rect != null) {
jMacro.mouseLeftClick(rect);
Logger.info("检测到广告弹框,关闭弹框");
}
}
jMacro.delay();
{ // 定位离线收益弹框,关闭弹框
ScreenRect rect = jMacro.matchPic(gameScreen, "城镇_离线收益_L204,734", 0.9);
if (rect != null) {
jMacro.mouseLeftClick(rect);
Logger.info("检测到离线收益弹框,关闭弹框");
}
}
jMacro.delay();
// 定位主程序
ScreenRect rect = jMacro.matchPic(gameScreen, "野外_L444,888", 0.9);
if (rect != null) {
Logger.info("程序主界面已就绪");
return rect;
}
}
}, 30, TimeUnit.SECONDS);
if ( == null) {
schedule.cancel(true);
schedule = null;
Logger.info("未扫描到主界面:退出线程");
return;
}
Logger.info("进入主界面");
Logger.info("进入任务线程");
TaskUtil.timeTask((Runnable) () -> {
while (true) {
// 矿场攻击检测任务
jMacro.delayNormal();
new TaskMineAttack(jMacro, gameScreen).run();
// 矿场攻击检测任务
jMacro.delayNormal();
new TaskRewards(jMacro, gameScreen).run();
// 自动采矿任务
jMacro.delayNormal();
new TaskMining(jMacro, gameScreen).run();
}
}, 10, TimeUnit.MINUTES);
}
}
/**
*
*/
public static void main(String[] args) throws AWTException {
new MainTask().start();
}
}

@ -0,0 +1,138 @@
package com.example.jmacro.wjdr.demo;
import com.example.jmacro.wjdr.JMacro;
import com.example.jmacro.wjdr.JMacroThread;
import com.example.jmacro.wjdr.base.ScreenRect;
import com.example.jmacro.wjdr.demo.task.TaskMineAttack;
import com.example.jmacro.wjdr.demo.task.TaskMining;
import com.example.jmacro.wjdr.demo.task.TaskRewards;
import com.example.jmacro.wjdr.util.Logger;
import com.example.jmacro.wjdr.util.TaskUtil;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.TimeUnit;
public class DemoThread extends JMacroThread {
/**
*
*/
private ScreenRect gameScreen;
/**
* 线
*/
private static ScheduledFuture<?> schedule;
/**
*
*/
private final String workStart = "08:00:00";
/**
*
*/
private final String workEnd = "24:00:00";
/**
*
*/
private boolean noDelay = true;
public DemoThread(JMacro jMacro) {
super(jMacro);
}
@Override
public ScreenRect getScreen() {
return gameScreen;
}
@Override
public void run() {
// 定位mumu bar
Logger.info("定位慕慕窗口");
ScreenRect mumu = jMacro.findPic("慕慕_工具栏", 0.95d);
if (mumu == null) {
throw new IllegalStateException("未检测到MuMu请开启MuMu模拟器");
}
Logger.info("定位慕慕窗口成功");
// 计算应用窗口返回
gameScreen = new ScreenRect();
gameScreen.setLeft(mumu.getLeft() - 428);
gameScreen.setTop(mumu.getBottom() + 7);
gameScreen.setRight(mumu.getRight());
gameScreen.setBottom(mumu.getBottom() + 951);
Logger.info("应用窗口位置:" + gameScreen.toString());
Logger.info("应用窗口大小:{}x{}", gameScreen.getRight() - gameScreen.getLeft(), gameScreen.getBottom() - gameScreen.getTop());
// 获取启动图标
Logger.info("定位启动图标");
ScreenRect launch = jMacro.waitAndFindPic(gameScreen, "启动图标", 0.8);
if (launch != null) {
Logger.info("启动图标坐标:", launch.toString());
Logger.info("启动程序");
jMacro.delay();
jMacro.mouseLeftClick(launch);
} else {
Logger.info("启动图标失败,继续定位主界面");
}
Logger.info("定位主界面");
ScreenRect = TaskUtil.timeTask(() -> {
while (true) {
jMacro.delay();
{ // 定位弹框,关闭弹框
Logger.info("检测到广告弹框");
ScreenRect rect = jMacro.matchPic(gameScreen, "城镇_充值_L448,36", 0.8d);
if (rect != null) {
jMacro.mouseLeftClick(rect);
Logger.info("检测到广告弹框,关闭弹框");
}
}
jMacro.delay();
{ // 定位离线收益弹框,关闭弹框
ScreenRect rect = jMacro.matchPic(gameScreen, "城镇_离线收益_L204,734", 0.9);
if (rect != null) {
jMacro.mouseLeftClick(rect);
Logger.info("检测到离线收益弹框,关闭弹框");
}
}
jMacro.delay();
// 定位主程序
ScreenRect rect = jMacro.matchPic(gameScreen, "野外_L444,888", 0.9);
if (rect != null) {
Logger.info("程序主界面已就绪");
return rect;
}
}
}, 30, TimeUnit.SECONDS);
if ( == null) {
schedule.cancel(true);
schedule = null;
Logger.info("未扫描到主界面:退出线程");
return;
}
Logger.info("进入主界面");
Logger.info("进入任务线程");
TaskUtil.timeTask((Runnable) () -> {
while (true) {
// 矿场攻击检测任务
jMacro.delayNormal();
new TaskMineAttack(jMacro, gameScreen).run();
// 矿场攻击检测任务
jMacro.delayNormal();
new TaskRewards(jMacro, gameScreen).run();
// 自动采矿任务
jMacro.delayNormal();
new TaskMining(jMacro, gameScreen).run();
}
}, 10, TimeUnit.MINUTES);
}
}

@ -1,4 +1,4 @@
package com.example.jmacro.wjdr.task;
package com.example.jmacro.wjdr.demo.task;
import com.example.jmacro.wjdr.JMacro;
import com.example.jmacro.wjdr.base.ScreenRect;

@ -1,4 +1,4 @@
package com.example.jmacro.wjdr.task;
package com.example.jmacro.wjdr.demo.task;
import com.example.jmacro.wjdr.JMacro;
import com.example.jmacro.wjdr.base.ScreenRect;

@ -1,4 +1,4 @@
package com.example.jmacro.wjdr.task;
package com.example.jmacro.wjdr.demo.task;
import cn.hutool.json.JSONUtil;
import com.example.jmacro.wjdr.JMacro;

@ -1,4 +1,4 @@
package com.example.jmacro.wjdr.task;
package com.example.jmacro.wjdr.demo.task;
import com.example.jmacro.wjdr.JMacro;
import com.example.jmacro.wjdr.base.ScreenRect;

@ -0,0 +1,31 @@
package com.example.jmacro.wjdr.ui;
import com.example.jmacro.wjdr.util.ResourceUtil;
import javafx.fxml.FXMLLoader;
import java.io.IOException;
import java.net.URL;
/**
* FXML
*/
public class FXMLUtil {
/**
* FXMLLoader
*
* @param fxml
* @return
*/
public static FXMLLoader load(String fxml) throws IOException {
if (!fxml.startsWith("classpath:")) {
fxml = "classpath:" + fxml;
}
URL resource = ResourceUtil.getURL(fxml);
FXMLLoader fxmlLoader = new FXMLLoader(resource);
fxmlLoader.load();
return fxmlLoader;
}
}

@ -0,0 +1,58 @@
package com.example.jmacro.wjdr.util;
import cn.hutool.core.io.resource.ClassPathResource;
import javafx.fxml.FXMLLoader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
/**
*
*/
public class ResourceUtil extends cn.hutool.core.io.resource.ResourceUtil {
/**
* ,/
*
* @return
*/
public static InputStream getInput(String resourceLocation) {
if (resourceLocation.startsWith("/")) {
resourceLocation = "/" + resourceLocation;
}
ClassPathResource classPathResource = new ClassPathResource(resourceLocation);
return classPathResource.getStream();
}
/**
*
*
* @param resourceLocation
*/
public static URL getURL(String resourceLocation) throws FileNotFoundException {
if (resourceLocation.startsWith("classpath:")) {
String path = resourceLocation.substring("classpath:".length());
ClassLoader cl = FXMLLoader.getDefaultClassLoader();
URL url = cl != null ? cl.getResource(path) : ClassLoader.getSystemResource(path);
if (url == null) {
String description = "class path resource [" + path + "]";
throw new FileNotFoundException(description + " cannot be resolved to URL because it does not exist");
} else {
return url;
}
} else {
try {
return new URL(resourceLocation);
} catch (MalformedURLException var6) {
try {
return (new File(resourceLocation)).toURI().toURL();
} catch (MalformedURLException var5) {
throw new FileNotFoundException("Resource location [" + resourceLocation + "] is neither a URL not a well-formed file path");
}
}
}
}
}

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<?import javafx.scene.control.Separator?>
<?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.ColumnConstraints?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.layout.HBox?>
<?import javafx.scene.layout.RowConstraints?>
<AnchorPane prefHeight="300.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/10.0.2-internal"
xmlns:fx="http://javafx.com/fxml/1" fx:controller="com.example.jmacro.wjdr.JMainController">
<children>
<HBox alignment="CENTER_LEFT" prefHeight="40.0" prefWidth="400.0" AnchorPane.leftAnchor="0.0"
AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<children>
<Label alignment="CENTER" contentDisplay="CENTER" prefHeight="40.0" prefWidth="60.0" text="工具"/>
<Button mnemonicParsing="false" prefHeight="30.0" prefWidth="80.0" text="采集图例" onMouseClicked="#onCapture">
<HBox.margin>
<Insets/>
</HBox.margin>
</Button>
</children>
</HBox>
<Separator opacity="0.5" prefHeight="1.0" prefWidth="200.0" AnchorPane.leftAnchor="0.0"
AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="40.0"/>
<GridPane layoutX="71.0" layoutY="139.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0"
AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="41.0">
<columnConstraints>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
<ColumnConstraints hgrow="SOMETIMES" minWidth="10.0" prefWidth="100.0"/>
</columnConstraints>
<rowConstraints>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
<RowConstraints minHeight="10.0" prefHeight="30.0" vgrow="SOMETIMES"/>
</rowConstraints>
</GridPane>
</children>
</AnchorPane>
Loading…
Cancel
Save

Powered by TurnKey Linux.