Я уже упоминал, что возвращаюсь в JavaFX только из-за проекта колледжа на последнем курсе.Я создал IP / Mac адресный искатель, скажем.В рамках этого я буду запускать команду arp и возвращать информацию из команды arp.Я столкнулся с проблемой слишком маленького текстового поля для всей возвращаемой информации arp.Когда я помещаю текстовую область, моя сетка изменяется и не выравнивается.Кто-нибудь сможет посоветовать, как добавить текстовую область в?Область, о которой я говорю, находится в разделе **
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.URL;
import javafx.application.Application;
import javafx.geometry.Insets;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
import javafx.scene.layout.GridPane;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.FontWeight;
import javafx.scene.text.Text;
import javafx.stage.Stage;
public class Main extends Application {
Stage window;
public static void main(String[] args) {
launch(args);
}
@Override
public void start(Stage primaryStage) throws Exception {
window = primaryStage;
window.setTitle("Wi-FI Connection Checker");
//GridPane with 10px padding around edge
GridPane grid = new GridPane();
grid.setPadding(new Insets(10, 10, 10, 10));
grid.setVgap(10);
grid.setHgap(10);
//Name Label - constrains use (child, column, row)
Label nameLabel = new Label("Find my IP Address:");
nameLabel.setId("bold-label");
GridPane.setConstraints(nameLabel, 0, 0);
//Search IP Address
Button IPlookupButton =new Button("Search for IP");
GridPane.setConstraints(IPlookupButton, 3, 0);
//Name Input
TextField nameInput = new TextField();
nameInput.setPromptText("IP Address");
GridPane.setConstraints(nameInput, 1, 0);
IPlookupButton.setOnAction(event -> {
try {
InetAddress thisIp = InetAddress.getLocalHost();
nameInput.setText("IP:" + thisIp.getHostAddress());
} catch (Exception e) {
e.printStackTrace();
}
});
//MAC Address Lookup Label
Label passLabel = new Label("MAC Address Look UP:");
GridPane.setConstraints(passLabel, 0, 1);
//MAC Address Input
TextField passInput = new TextField();
passInput.setPromptText("MAC Address");
GridPane.setConstraints(passInput, 1, 1);
//Search MAC Address
Button MacAddressButton =new Button("Search for MAC Address");
GridPane.setConstraints(MacAddressButton, 3, 1);
//MAC Address Input
TextField MacFound = new TextField();
GridPane.setConstraints(MacFound, 1, 2);
//MAC Vendor Label
Label vendorLabel = new Label("Manufacturer Make:");
GridPane.setConstraints(vendorLabel, 0, 2);
//MAC Address Search
MacAddressButton.setOnAction(event -> {
try {
String MacAddress = passInput.getText();
URL oracle = new URL("https://api.macvendors.com/"+ MacAddress);
BufferedReader in = new BufferedReader(
new InputStreamReader(oracle.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null)
MacFound.setText(inputLine);
MacFound.setPrefWidth(MacFound.getText().length() * 7);
in.close();
}catch (Exception e) {
e.printStackTrace();
}
}
);
//Wi-Fi Connection Button
Button WifiButton = new Button("Search my Wi-Fi");
GridPane.setConstraints(WifiButton, 1, 3);
TextField WifiInfo = new TextField();
//textArea.setPrefRowCount(4);
GridPane.setConstraints(WifiInfo, 1, 4);
**WifiButton.setOnAction(event -> {
try {
Process process = Runtime.getRuntime().exec("arp -a");
process.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
int i = 0;
while (reader.ready()) {
i++;
String ip = reader.readLine();
if (i >= 4) {
ip = ip.substring(2, 56) + "\n";
}
WifiInfo.setText(ip);
WifiInfo.setPrefWidth(WifiInfo.getText().length() * 7);
}
} catch (IOException | InterruptedException ioe) {
ioe.printStackTrace();
}**
});
//Add everything to grid
grid.getChildren().addAll(nameLabel, IPlookupButton, nameInput, passLabel, passInput,MacAddressButton, MacFound, vendorLabel, WifiButton, WifiInfo);
Scene scene = new Scene(grid, 600, 300);
scene.getStylesheets().add("colour.css");
window.setScene(scene);
window.show();
}
}