javafx小白求助Scene Builder页面修改后,控制器出问题,运行报错页面无法跳转 5C

本人是小白一枚,用Scene Builder将页面修改后,之间本可以跳转的页面,无法跳转。报错
Exception in thread "JavaFX Application Thread" java.lang.RuntimeException: java.lang.reflect.InvocationTargetException
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1774)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.control.MenuItem.fire(MenuItem.java:462)
at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1405)
at com.sun.javafx.scene.control.skin.ContextMenuContent$MenuItemContainer.lambda$createChildren$343(ContextMenuContent.java:1358)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:381)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:417)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:416)
at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
at com.sun.glass.ui.View.notifyMouse(View.java:937)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769)
... 43 more
Caused by: javafx.fxml.LoadException:
/C:/Users/lenovo/Desktop/CorpusGeneratorGUI/build/classes/corpusgeneratorgui/ModelSetupFXML.fxml

at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2601)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2579)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2441)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2409)
at corpusgeneratorgui.GeneratorFXMLController.handleActionEvent(GeneratorFXMLController.java:109)
... 53 more

Caused by: java.lang.NullPointerException
at corpusgeneratorgui.ModelSetupFXMLController.initialize(ModelSetupFXMLController.java:44)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2548)
... 56 more

1个回答

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
javafx scene builder中的多个textfield可以通过数组或指针批量赋值吗?
javafx scene builder中的多个textfield可以通过数组或指针批量赋值吗?
关于JavaFX Button 报错求助
我用idea创建了一个JavaFX项目,创建的项目里面自带一个Main类我在里面写以下代码: ``` package sample; import javafx.application.Application; import javafx.scene.Group; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.stage.Stage; public class M extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { Button button=new Button("按钮"); button.setPrefHeight(200); button.setPrefWidth(200); Group group=new Group(); group.getChildren().add(button); Scene scene=new Scene(group); primaryStage.setScene(scene); primaryStage.setTitle("JavaFX"); primaryStage.setWidth(800); primaryStage.setHeight(800); primaryStage.show(); } } ``` 运行没有任何问题,但是我自己新建了一个JavaFX文件 TestButton.class同样使用上面的代码结果却在Button button=new Button("按钮");这里一直报错,网上也百度不到,求帮助。 下面是报错截图:![图片说明](https://img-ask.csdn.net/upload/201912/24/1577193788_186337.png)
myeclipse2014 怎么安装JavaFX Scene Builder
求大神具体教程 ,myeclipse怎么安装,还是已经自带了 要怎么使用
javaFX scene builder2.0 的ComboBox 怎么用
我做好窗口之后,有了ComboBox, 然后 static ObservableList<String> options = FXCollections.observableArrayList( "Option 1", "Option 2", "Option 3" ); @FXML private static ComboBox<?> Source=new ComboBox(); static{ Source.setItems( options); } 然后窗口的combobox 控件没反应
JavaFX代码运行之后报错找不到或无法加载主类?
出现报错 错误: 找不到或无法加载主类 com.Test.MyJavaFX 原因: java.lang.NoClassDefFoundError: javafx/application/Application 附上代码 package com.Test; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.stage.Stage; public class MyJavaFX extends Application{ @Override public void start(Stage primaryStage) { Button btOK = new Button("OK"); Scene scene = new Scene(btOK, 200, 250); primaryStage.setTitle("MyJavaFX"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { Application.launch(args); } }
JAVAFX FXML中找不到TableColumn绑定的方法
如题,JAVAFX FXML中找不到TableColumn绑定的方法 EditAssignmentGradesController的主要相关代码片段如下 ``` package sample; import java.util.Map; import Model.Record; import Model.Student; import Model.Subject; import Model.Score; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.fxml.FXML; import javafx.scene.control.Label; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextArea; import javafx.scene.control.cell.TextFieldTableCell; public class EditAssignmentGradesController { @FXML private TableView<Record> recordTable; @FXML private TableColumn<Record, String> nameColumn; @FXML private TableColumn<Record, String> gradeColumn; @FXML private TableColumn<Record, String> bonusColumn; @FXML void onEditName(TableColumn.CellEditEvent<String, String> ddd) { Record record = recordTable.getSelectionModel().getSelectedItem(); record.setName(ddd.getNewValue()); } @FXML private void onEditPoints(TableColumn.CellEditEvent<Record, String> pointsCellEdited) { Record record = recordTable.getSelectionModel().getSelectedItem(); record.setPoints(pointsCellEdited.getNewValue()); } @FXML private Label assignmentLabel; @FXML private Label maxscoreLabel; @FXML private TextArea commentsArea; private int gradeWay; private Subject subject; private ObservableList<Record> recordData = FXCollections.observableArrayList();; ``` FXML中这一段一直显示 The controller 'EditAssignmentGradesController' has no event slot 'onEditName' ![图片说明](https://img-ask.csdn.net/upload/201912/07/1575675448_59692.png) 整体代码如下 ``` <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.control.Button?> <?import javafx.scene.control.Label?> <?import javafx.scene.control.RadioButton?> <?import javafx.scene.control.TableColumn?> <?import javafx.scene.control.TableView?> <?import javafx.scene.control.TextArea?> <?import javafx.scene.layout.AnchorPane?> <AnchorPane prefHeight="400.0" prefWidth="400.0" xmlns="http://javafx.com/javafx/11.0.1" xmlns:fx="http://javafx.com/fxml/1" fx:controller="sample.EditAssignmentGradesController"> <children> <Label layoutX="39.0" layoutY="43.0" text="Assignment:" /> <Label fx:id="assignmentLabel" layoutX="113.0" layoutY="43.0" text="Label" /> <Label layoutX="178.0" layoutY="43.0" text="How is this grade calculated?" /> <Label layoutX="39.0" layoutY="70.0" text="Max Score:" /> <Label fx:id="maxscoreLabel" layoutX="113.0" layoutY="70.0" text="Label" /> <TableView fx:id="recordTable" layoutX="41.0" layoutY="100.0" prefHeight="130.0" prefWidth="300.0"> <columns> <TableColumn fx:id="nameColumn" onEditCommit="#onEditName" prefWidth="75.0" sortable="false" style="-fx-background-color: #66CCFF;" text="Student Name" /> <TableColumn fx:id="gradeColumn" onEditCommit="#onEditPoints" prefWidth="75.0" sortable="false" style="-fx-background-color: #66CCFF;" text="Grade" /> <TableColumn fx:id="bonusColumn" prefWidth="75.0" sortable="false" style="-fx-background-color: #66CCFF;" text="Bonus" /> </columns> <columnResizePolicy> <TableView fx:constant="CONSTRAINED_RESIZE_POLICY" /> </columnResizePolicy> </TableView> <Label layoutX="41.0" layoutY="263.0" text="Comments:" /> <TextArea fx:id="commentsArea" layoutX="113.0" layoutY="253.0" prefHeight="80.0" prefWidth="222.0" /> <Button layoutX="309.0" layoutY="361.0" mnemonicParsing="false" onAction="#handleSave" text="Save" /> <RadioButton layoutX="148.0" layoutY="70.0" mnemonicParsing="false" onAction="#percentWay" text="Percent" /> <RadioButton layoutX="216.0" layoutY="70.0" mnemonicParsing="false" onAction="#lostWay" text="Points Lost" /> <RadioButton layoutX="302.0" layoutY="70.0" mnemonicParsing="false" onAction="#rawWay" text="Raw Points" /> </children> </AnchorPane> ``` 当去除onEditName()的参数的时候,FXML文件里就不会报错,但是加上就会报错,试了半天不知道原因,恳请各位指点
javafx 在contrller类加载不了FXML页面
我想在contrller类加载fxml,一直提示IOException(应该是URL方法返回了空指针,即找不到文件的位置),但是在含有main的类里面又可以加载,为什么,如何解决? ``` package javafxapplication1; import java.io.IOException; import java.net.URL; import java.util.ResourceBundle; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.stage.Stage; /** * * @author yu */ public class FXMLDocumentController implements Initializable { @FXML private Label label; private Button bt1; @FXML private void handleButtonAction(ActionEvent event) throws IOException { Parent root = FXMLLoader.load(getClass().getResource("fxml2.fxml")); Stage stage; stage=(Stage)bt1.getScene().getWindow(); Scene scene=new Scene(root); stage.setScene(scene); stage.show(); } @Override public void initialize(URL url, ResourceBundle rb) { // TODO } } ```
JavaFX异常:Exception in Application start method
``` package com.shun.demo; import javafx.application.Application; import javafx.scene.paint.Color; import javafx.scene.control.*; import javafx.scene.layout.*; import javafx.scene.text.*; import javafx.stage.Stage; import javafx.scene.Scene; public class JavaFX extends Application { @Override public void start(Stage primaryStage) { //Panes StackPane stackPane=new StackPane(); GridPane gridPane=new GridPane(); //Nodes Button button=new Button("OK"); TextField textUsername=new TextField(); textUsername.setPromptText("Please Enter your Username..."); PasswordField textPassword=new PasswordField(); textPassword.setPromptText("Please Enter your Password..."); //Panes gridPane.add(new Label("Username:"),0,0); gridPane.add(textUsername,1,0); gridPane.add(new Label("Password:"),0,1); gridPane.add(textPassword,1,1); gridPane.add(button,2,1); stackPane.getChildren().add(gridPane); Scene scene=new Scene(stackPane,200,200); //Stage primaryStage.setScene(scene); primaryStage.setTitle("MyJavaFX"); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ``` 求解决。
myeclipse 怎么弄javaFX,小白求指导
我将网上的网址输入之后,只有javaFX file没有其他的javaFx选项,求正确的安装javaFX方法
javaFx问题 InvocationTargetException
我是一javaFx初学者,据网上说javaFX已经打包入jdk1.8了,按理说就不在需要导入任何包了(网上教程也是这么说的),我用的NetBeans开发的,也装好了jdk1.8,建项目的时候也选的1.8,报错网上搜了一圈确是找不到包。。。。。。。。。跪求大神 错误如下: ```ant -f E:\\netbeats\\JavaFXApplication1 -Djavac.includes=javafxapplication1/Login.java -Dnb.internal.action.name=run.single -Drun.class=javafxapplication1.Login run-single init: Deleting: E:\netbeats\JavaFXApplication1\build\built-jar.properties deps-jar: Updating property file: E:\netbeats\JavaFXApplication1\build\built-jar.properties Compiling 1 source file to E:\netbeats\JavaFXApplication1\build\classes compile-single: run-single: Exception in Application start method java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389) at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at sun.launcher.LauncherHelper$FXHelper.main(LauncherHelper.java:767) Caused by: java.lang.RuntimeException: Exception in Application start method at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.NullPointerException at javafxapplication1.Login.start(Login.java:91) at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863) at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326) at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294) at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191) ... 1 more Exception running application javafxapplication1.Login E:\netbeats\JavaFXApplication1\nbproject\build-impl.xml:1052: The following error occurred while executing this line: E:\netbeats\JavaFXApplication1\nbproject\build-impl.xml:806: Java returned: 1 BUILD FAILED (total time: 1 second) ``` 代码如下: ``` /* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package javafxapplication1; import javafx.application.Application; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.PasswordField; import javafx.scene.control.TextField; import javafx.scene.layout.GridPane; import javafx.scene.layout.HBox; import javafx.scene.paint.Color; import javafx.scene.text.Font; import javafx.scene.text.FontWeight; import javafx.scene.text.Text; import javafx.stage.Stage; /** * * @author Administrator */ public class Login extends Application{ //start javafx的程序入口 @Override public void start(Stage primaryStage) throws Exception { //设置窗体头部的名称 primaryStage.setTitle("JavaFx Welcome"); GridPane grid = new GridPane(); grid.setAlignment(Pos.CENTER); grid.setHgap(10); grid.setVgap(10); grid.setPadding(new Insets(25,25,25,25)); //创建一个不可编辑的text对象 Text scenetitle = new Text("影锋"); //设置字体,粗细,字号 scenetitle.setFont(Font.font("Tahoma", FontWeight.NORMAL, 20)); //添加到面板 0列0行 列跨度为2 行跨度为1 grid.add(scenetitle, 0, 0,2,1); //创建文本 Label userName = new Label("User Name:"); //1列1行 grid.add(userName, 0, 1); //创建文本框 TextField userTextField = new TextField(); grid.add(userTextField, 1, 1); Label pw = new Label("Password:"); grid.add(pw, 0, 2); PasswordField pwBox = new PasswordField(); grid.add(pwBox, 1, 2); //添加按钮 Button btn =new Button("提交"); //创建布局面板,设置它的间距为10 HBox hbBtn = new HBox(10); //设置与面板的其他控件对其 hbBtn.setAlignment(Pos.BOTTOM_RIGHT); //添加到hbBtn面板的节点中 hbBtn.getChildren().add(btn); //添加到grid中 grid.add(hbBtn, 1, 4); //增加用于显示信息的文本 final Text actiontarget = new Text(); grid.add(actiontarget, 1, 6); btn.setOnAction(new EventHandler<ActionEvent>() { @Override public void handle(ActionEvent e) { actiontarget.setFill(Color.FIREBRICK); actiontarget.setText("Sign in button pressed"); } }); //设置窗体对象的的大小 Scene scene = new Scene(grid,300,275); primaryStage.setScene(scene); scene.getStylesheets().add(Login.class.getResource("Login.css").toExternalForm()); primaryStage.show(); } public static void main(String[]args){ launch(args); ```
JavaFX里使用image类的小程序运行不了,求大佬指点一下
![图片说明](https://img-ask.csdn.net/upload/201708/13/1502616698_579941.png) ``` import javafx.application.Application; import javafx.geometry.Insets; import javafx.scene.Scene; import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.HBox; //import javafx.scene.layout.Pane; import javafx.stage.Stage; public class ShowImage extends Application{ public void start(Stage primaryStage) { HBox pane = new HBox(10); pane.setPadding(new Insets(5,5,5,5)); Image image = new Image("image/us.gif"); pane.getChildren().add(new ImageView(image)); Scene scene = new Scene(pane); primaryStage.setTitle("ShowImage"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { Application.launch(args); } } ```
关于JavaFX中按钮事件
import javafx.application.*; import javafx.geometry.Pos; import javafx.stage.Stage; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.scene.layout.FlowPane; import javafx.scene.layout.GridPane; import javafx.scene.layout.Pane; import javafx.scene.text.*; import javafx.scene.control.Button; import javafx.scene.control.TextField; public class Calculate extends Application{ public void start(Stage primaryStage) { TextField tfNum1 = new TextField(); tfNum1.setMaxWidth(50); TextField tfNum2 = new TextField(); tfNum2.setMaxWidth(50); TextField tfResult = new TextField(); tfResult.setMaxWidth(50); Text num1 = new Text("Number1:"); Text num2 = new Text("Number2:"); Text result = new Text("Result:"); Button btAdd = new Button("Add"); Button btSubtract = new Button("Subtract"); Button btMultiply = new Button("Multiply"); Button btDivide = new Button("Divide"); GridPane gridPane = new GridPane(); gridPane.add(num1, 0, 0); gridPane.add(tfNum1, 1, 0); gridPane.add(num2, 2, 0); gridPane.add(tfNum2, 3, 0); gridPane.add(result, 4, 0); gridPane.add(tfResult, 5,0); FlowPane pane = new FlowPane(); pane.getChildren().addAll(btAdd,btSubtract,btMultiply,btDivide); pane.setHgap(5); pane.setAlignment(Pos.CENTER); BorderPane borderPane = new BorderPane(); borderPane.setTop(gridPane); borderPane.setCenter(pane); btAdd.setOnAction(oa->{ double n1 = Double.parseDouble(tfNum1.getText()); double n2 = Double.parseDouble(tfNum2.getText()); double r =n1+n2; tfResult.setText(String.valueOf(r)); }); btSubtract.setOnAction(oa->{ double n1 = Double.parseDouble(tfNum1.getText()); double n2 = Double.parseDouble(tfNum2.getText()); double r =n1-n2; tfResult.setText(String.valueOf(r)); }); btMultiply.setOnAction(oa->{ double n1 = Double.parseDouble(tfNum1.getText()); double n2 = Double.parseDouble(tfNum2.getText()); double r =n1*n2; tfResult.setText(String.valueOf(r)); }); btDivide.setOnAction(oa->{ double n1 = Double.parseDouble(tfNum1.getText()); double n2 = Double.parseDouble(tfNum2.getText()); if(n2==0) { Button btOK = new Button("OK"); Text text1 = new Text("除数不能为0"); GridPane pane2 = new GridPane(); pane2.add(text1, 0, 0); pane2.add(btOK, 1, 1); Scene scene2 = new Scene(pane2,150,40); Stage prompt = new Stage(); prompt.setScene(scene2); prompt.setTitle("error"); prompt.show(); btOK.setOnAction(e->{ prompt.close(); }); } else{ double r =n1/n2; tfResult.setText(String.valueOf(r));} }); Scene scene = new Scene(borderPane,320,50); primaryStage.setTitle("Calculator"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { // TODO Auto-generated method stub Application.launch(args); } } 以上是我的代码,我想问可不可以设置一个方法,判断是哪个按钮被按下呢?除了用鼠标的坐标判断。
javafx无法生成textfield区域,报错,报错和代码见下
java.lang.reflect.InvocationTargetException package example; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Label; import javafx.scene.control.TextField; import javafx.scene.layout.HBox; import javafx.stage.Stage; public class b extends Application { public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { primaryStage.setTitle("example"); Label l = new Label("请选择第1题的答案:"); TextField textField = new TextField (); HBox hb = new HBox(); hb.getChildren().addAll(l, textField); hb.setSpacing(100); Scene s = new Scene(l,200,100); primaryStage.show(); primaryStage.setScene(s); } }
新人提问JavaFx关于Image小问题
import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.HBox; import javafx.scene.layout.Pane; import javafx.geometry.Insets; import javafx.stage.Stage; import javafx.scene.image.Image; import javafx.scene.image.ImageView; public class ShowImage extends Application { public void start (Stage primaryStage) { Pane pane = new HBox(10); pane.setPadding(new Insets(5, 5, 5, 5)); Image image = new Image("image/us.gif"); pane.getChildren().add(new ImageView(image)); ImageView imageView2 = new ImageView(image); imageView2.setFitHeight(100); imageView2.setFitWidth(100); pane.getChildren().add(imageView2); ImageView imageView3 = new ImageView(image); imageView3.setRotate(90); pane.getChildren().add(imageView3); Scene scene = new Scene(pane); primaryStage.setTitle("ShowImage"); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { Application.launch(args); } } 上面是照着书上的敲出来的,workspace下也有一个image文件夹,里面还有一个叫us.gif的图,但是运行后是如图所示,不知道为什么,希望能帮忙解决下![![图片说明](https://img-ask.csdn.net/upload/201709/16/1505573277_528967.png)图片说明](https://img-ask.csdn.net/upload/201709/16/1505573270_355617.png)
java jdk13 fx 运行时界面大小和预先设置不一样
前两天刚刚从1.8转到了13,而且按照网上的正确方法下载了13对应的fx,配置好了user libraries(我甚至还又装了11的fx,尝试着用) ![图片说明](https://img-ask.csdn.net/upload/201912/09/1575890050_633637.png) 配置好FX后,代码不再报错,也能正常引用FX的包。我也就简单的试着用fxml文件开一个窗口试试,fxml文件及代码如下 fxml文件 ``` <?xml version="1.0" encoding="UTF-8"?> <?import java.lang.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.AnchorPane?> <AnchorPane prefHeight="276.0" prefWidth="441.0" xmlns:fx="http://javafx.com/fxml/1" xmlns="http://javafx.com/javafx/8"> <!-- TODO Add Nodes --> </AnchorPane> ``` 代码 ``` import java.io.IOException; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class test extends Application{ @Override public void start(Stage primaryStage) throws IOException { Parent root = FXMLLoader.load(getClass().getResource("a.fxml")); Scene scene = new Scene(root); primaryStage.setScene(scene); primaryStage.setTitle("a"); primaryStage.show(); } } ``` 主函数部分 ``` import javafx.application.Application; /** * @author Deren.G.Zero * fx 启动的时候不能直接由继承于Application的类的主函数调用launch来进行,因为该方法存在模块化问题 * 现在选择在另外一个主函数中调用Application.launch(“目标类的class”);来进行实现 */ public class TableViewExample { public static void main(String[] args) { Application.launch(test.class); } } ``` 但是运行后出现的窗口和我在SceneBuilder里面预览的大小不一样(实际打开的窗口更大一些)。 ![图片说明](https://img-ask.csdn.net/upload/201912/09/1575889803_937463.png) 而且我试着打开我以前的项目,结果UI也和之前不一样了(后面的是运行使大小,前面的是SceneBuilder的预览) ![图片说明](https://img-ask.csdn.net/upload/201912/09/1575890738_860269.png) 有大佬能帮我解决一下这个问题吗?
求一个JavaFX,线程问题
程序运行如下:![图片说明](https://img-ask.csdn.net/upload/201605/25/1464184247_763433.jpg) 先设置时间间隔,然后点击开始 ,生成输入后,点击停止 也会停止,但是再次点击开始会抛出如图异常。 请各位大神帮忙解决. (知道可以用util工具Timer,Timer;但如何不用工具类,只用线程。) 代码如下 : ---1.显示界面 package addData; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.layout.VBox; import javafx.stage.Stage; public class TestView extends Application{ public void start(Stage stage) throws Exception { TableFX table = new TableFX(); VBox vb = table.createStage(); Scene scene = new Scene(vb); stage.setTitle("定时添加数据"); stage.setWidth(600); stage.setHeight(400); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(args); } } ---2.用线程自制定时器 package addData; public abstract class ThreadTimer extends Thread{ private boolean flag; private int time; public void run(){ while(true){ if(flag){ doThing(); try { Thread.sleep(time*1000); } catch (InterruptedException e) { System.out.println("线程被中断"); } } } } public abstract void doThing(); public ThreadTimer() { super(); } public ThreadTimer(boolean flag) { super(); this.flag = flag; } public ThreadTimer(int time) { super(); this.time = time; } public ThreadTimer(boolean flag, int time) { super(); this.flag = flag; this.time = time; } public boolean isFlag() { return flag; } public void setFlag(boolean flag) { this.flag = flag; } public int getTime() { return time; } public void setTime(int time) { this.time = time; } } ---3.实现按钮事件操控线程定时器 package addData; import test3.MyTest.StringModel; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.event.EventHandler; import javafx.geometry.Insets; import javafx.geometry.Pos; import javafx.scene.control.Button; import javafx.scene.control.Label; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextField; import javafx.scene.control.cell.PropertyValueFactory; import javafx.scene.layout.HBox; import javafx.scene.layout.VBox; public class TableFX extends ThreadTimer{ HBox hb = new HBox(); Button start = new Button("开始"); Button stop = new Button("停止"); Label intervalLabel = new Label("时间间隔(秒)"); TextField interval = new TextField(); TableView<StringModel> table = new TableView<StringModel>(); ObservableList<StringModel> data = FXCollections.observableArrayList(new StringModel("11","aa")); public void doThing() { System.out.println("正在添加数据"); data.addAll(new StringModel("aa"+Math.random()*100, "bb")); } public VBox createStage(){ //设置2个按钮,1个文本框 hb.setSpacing(15); hb.setAlignment(Pos.CENTER);//设置box中控件居中 hb.getChildren().addAll(start,stop,interval,intervalLabel); //设置按钮事件 start.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent event) { setTime(Integer.parseInt(interval.getText())); setFlag(true); start(); } }); stop.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent event) { setFlag(false); } }); //设置显示记录的表格 TableColumn tc1 = new TableColumn("消息记录"); tc1.setMinWidth(400); tc1.setMaxWidth(400); tc1.setCellValueFactory(new PropertyValueFactory<>("str1")); table.setItems(data); table.getColumns().addAll(tc1); //把HBox和 TableView 放进 VBox VBox vb = new VBox(); vb.setSpacing(10); vb.setPadding(new Insets(10,10,10,10)); vb.getChildren().addAll(hb,table); return vb; } }
新人问题 JavaFx的Stage跳转问题
package cn.learn.filewriter; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.GridPane; import javafx.scene.text.Text; import javafx.stage.Stage; public class Filewriter extends Application { private Stage stage = new Stage(); private Stage stage1 = new Stage(); private Stage stage2 = new Stage(); private final int SCREENWIDTH = 333; private final int SCREENHEIGHT = 300; public void start(Stage primaryStage) { GridPane borderPane = new GridPane(); Button btBack = new Button("OK"); Text text=new Text("Stage"); borderPane.add(btBack, 0, 0); borderPane.add(text, 0, 1); Scene scene = new Scene(borderPane, SCREENWIDTH, SCREENHEIGHT); stage.setScene(scene); stage.setTitle("Bank"); stage.show(); btBack.setOnAction(e -> fun1()); } public void fun1() { GridPane borderPane = new GridPane(); Button btBack = new Button("Back"); Button btOk=new Button("OK"); Text text=new Text("Stage1"); borderPane.add(btBack, 5, 5); borderPane.add(btOk, 1, 5); borderPane.add(text, 0, 1); Scene scene = new Scene(borderPane, SCREENWIDTH, SCREENHEIGHT); stage1.setScene(scene); stage1.setTitle("Bank"); stage1.show(); btOk.setOnAction(e->fun2()); } public void fun2() { GridPane borderPane = new GridPane(); Button btBack = new Button("Back"); Text text=new Text("Stage2"); borderPane.add(btBack, 0, 0); borderPane.add(text, 0, 1); Scene scene = new Scene(borderPane, SCREENWIDTH, SCREENHEIGHT); stage2.setScene(scene); stage2.setTitle("Bank"); stage2.show(); btBack.setOnAction(e -> start(stage1)); } public static void main(String[] args) { Application.launch(args); } } 比如这段代码 我想Stage2的back回到Stage1 应该怎么实现? 谢谢大家!
javafx 的 TableView 报错 lang.NullPointerException
如果把含有 TableView 的 fxml ( personnel.fxml ),放在第一个 Stage 窗口显示,则 TableView 中的内容能够正常显示。但是如果放在其他 Stage 窗口,则会报 NullPointerException。 ``` java.lang.NullPointerException at view.MyController.showList(MyController.java:135) at view.MyController.personnel(MyController.java:114) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.reflect.misc.Trampoline.invoke(Unknown Source) at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at sun.reflect.misc.MethodUtil.invoke(Unknown Source) at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1769) at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Node.fireEvent(Node.java:8411) at javafx.scene.control.Button.fire(Button.java:185) at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96) at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89) at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218) at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238) at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191) at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56) at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114) at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74) at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54) at javafx.event.Event.fireEvent(Event.java:198) at javafx.scene.Scene$MouseHandler.process(Scene.java:3757) at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485) at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762) at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394) at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295) at java.security.AccessController.doPrivileged(Native Method) at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432) at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389) at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431) at com.sun.glass.ui.View.handleMouseEvent(View.java:555) at com.sun.glass.ui.View.notifyMouse(View.java:937) at com.sun.glass.ui.win.WinApplication._runLoop(Native Method) at com.sun.glass.ui.win.WinApplication.lambda$null$147(WinApplication.java:177) at java.lang.Thread.run(Unknown Source) ``` TalbeView 定义: ``` Mycontroller.java package view; import java.net.URL; import java.util.ResourceBundle; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.fxml.Initializable; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.control.PasswordField; import javafx.scene.control.TableColumn; import javafx.scene.control.TableView; import javafx.scene.control.TextField; import javafx.scene.control.cell.PropertyValueFactory; import javafx.stage.Stage; import model.*; import control.*; public class MyController implements Initializable { @FXML private Button login; @FXML private TextField user; @FXML private PasswordField password; @FXML private Button okay,personnel,department; @FXML private TableView<Person> PersonTable; @FXML private TableColumn ID; @FXML private TableColumn NAME; @Override public void initialize(URL location, ResourceBundle resources) { // TODO (don't really need to do anything here). } // When user click on myButton // this method will be called. public void login(ActionEvent event) {//登录界面 if (false) { Stage LoginFailed = new Stage(); try { // Read file fxml and draw interface. Parent root = FXMLLoader.load(getClass() .getResource("/view/LoginFailed.fxml")); LoginFailed.setTitle("登陆失败"); LoginFailed.setScene(new Scene(root)); LoginFailed.show(); } catch(Exception e) { e.printStackTrace(); } } else { Stage primaryStage = (Stage)login.getScene().getWindow(); primaryStage.close(); Stage ChooseTable = new Stage(); try { // Read file fxml and draw interface. Parent root = FXMLLoader.load(getClass() .getResource("/view/ChooseTable.fxml")); ChooseTable.setTitle("请选择您要管理的表格"); ChooseTable.setScene(new Scene(root)); ChooseTable.show(); } catch(Exception e) { e.printStackTrace(); } } } public void okay(ActionEvent event) { Stage LoginFailed= (Stage)okay.getScene().getWindow(); LoginFailed.close(); } public void personnel(ActionEvent event) { Stage choose= (Stage)personnel.getScene().getWindow(); choose.close(); Stage personnel = new Stage(); try { // Read file fxml and draw interface. //showList(); Parent root = FXMLLoader.load(getClass() .getResource("/view/Sample.fxml")); personnel.setTitle("人员管理"); personnel.setScene(new Scene(root)); showList();//显示表格 personnel.show(); } catch(Exception e) { e.printStackTrace(); } } public void department(ActionEvent event) { Stage choose= (Stage)okay.getScene().getWindow(); choose.close(); } public void showList(){ ObservableList<Person> list = FXCollections.observableArrayList(); //ObservableList<User> list = FXCollections.observableArrayList(); Person p1 = new Person(); //User user = new User();//构建值对象 p1.setId("小六"); p1.setName("123"); //colUsername.setCellValueFactory(new PropertyValueFactory("id"));//映射 ID.setCellValueFactory(new PropertyValueFactory("id")); NAME.setCellValueFactory(new PropertyValueFactory("name")); list.add(p1); //list 添加值对象 PersonTable.setItems(list); //tableview 添加 list } } Person.java package model; public class Person { private String id; private String name; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } ``` Main.java ``` package control; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.stage.Stage; import model.Person; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { try { // Read file fxml and draw interface. Parent root = FXMLLoader.load(getClass() .getResource("/view/MainScene.fxml")); primaryStage.setTitle("My Application"); primaryStage.setScene(new Scene(root)); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } } package control; import javafx.application.Application; import javafx.collections.FXCollections; import javafx.collections.ObservableList; import javafx.stage.Stage; import model.Person; import javafx.scene.Scene; import javafx.scene.layout.BorderPane; import javafx.application.Application; import javafx.fxml.FXMLLoader; import javafx.scene.Parent; import javafx.scene.Scene; import javafx.stage.Stage; public class Main extends Application { @Override public void start(Stage primaryStage) { try { // Read file fxml and draw interface. Parent root = FXMLLoader.load(getClass() .getResource("/view/MainScene.fxml")); primaryStage.setTitle("My Application"); primaryStage.setScene(new Scene(root)); primaryStage.show(); } catch(Exception e) { e.printStackTrace(); } } public static void main(String[] args) { launch(args); } } ``` personnel.fmxl ``` <?xml version="1.0" encoding="UTF-8"?> <?import javafx.scene.*?> <?import javafx.scene.control.*?> <?import java.lang.*?> <?import javafx.scene.layout.*?> <?import javafx.scene.layout.AnchorPane?> <AnchorPane prefHeight="309.0" prefWidth="349.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1" fx:controller="view.MyController"> <children> <SplitPane dividerPositions="0.30547550432276654" layoutY="-4.0" prefHeight="315.0" prefWidth="349.0"> <items> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="160.0" prefWidth="100.0"> <children> <Group> <children> <Button layoutX="24.0" layoutY="204.0" mnemonicParsing="false" text="delete" /> <Button layoutX="24.0" layoutY="157.0" mnemonicParsing="false" prefHeight="23.0" prefWidth="59.0" text="add" /> <Button layoutX="24.0" layoutY="116.0" mnemonicParsing="false" prefHeight="23.0" prefWidth="56.0" text="alter" /> <Button layoutX="24.0" layoutY="74.0" mnemonicParsing="false" text="lookup" /> </children> </Group> </children> </AnchorPane> <AnchorPane minHeight="0.0" minWidth="0.0" prefHeight="204.0" prefWidth="266.0"> <children> <TableView fx:id="PersonTable" prefHeight="313.0" prefWidth="238.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0"> <columns> <TableColumn fx:id="ID" prefWidth="85.0" text="ID" /> <TableColumn fx:id="NAME" prefWidth="152.0" text="NAME" /> </columns> </TableView> </children> </AnchorPane> </items> </SplitPane> </children> </AnchorPane> ```
相见恨晚的超实用网站
搞学习 知乎:www.zhihu.com 简答题:http://www.jiandati.com/ 网易公开课:https://open.163.com/ted/ 网易云课堂:https://study.163.com/ 中国大学MOOC:www.icourse163.org 网易云课堂:study.163.com 哔哩哔哩弹幕网:www.bilibili.com 我要自学网:www.51zxw
花了20分钟,给女朋友们写了一个web版群聊程序
参考博客 [1]https://www.byteslounge.com/tutorials/java-ee-html5-websocket-example
爬虫福利二 之 妹子图网MM批量下载
爬虫福利一:27报网MM批量下载    点击 看了本文,相信大家对爬虫一定会产生强烈的兴趣,激励自己去学习爬虫,在这里提前祝:大家学有所成! 目标网站:妹子图网 环境:Python3.x 相关第三方模块:requests、beautifulsoup4 Re:各位在测试时只需要将代码里的变量 path 指定为你当前系统要保存的路径,使用 python xxx.py 或IDE运行即可。
字节跳动视频编解码面经
引言 本文主要是记录一下面试字节跳动的经历。 三四月份投了字节跳动的实习(图形图像岗位),然后hr打电话过来问了一下会不会opengl,c++,shador,当时只会一点c++,其他两个都不会,也就直接被拒了。 七月初内推了字节跳动的提前批,因为内推没有具体的岗位,hr又打电话问要不要考虑一下图形图像岗,我说实习投过这个岗位不合适,不会opengl和shador,然后hr就说秋招更看重基础。我当时
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
linux系列之常用运维命令整理笔录
本博客记录工作中需要的linux运维命令,大学时候开始接触linux,会一些基本操作,可是都没有整理起来,加上是做开发,不做运维,有些命令忘记了,所以现在整理成博客,当然vi,文件操作等就不介绍了,慢慢积累一些其它拓展的命令,博客不定时更新 顺便拉下票,我在参加csdn博客之星竞选,欢迎投票支持,每个QQ或者微信每天都可以投5票,扫二维码即可,http://m234140.nofollow.ax.
比特币原理详解
一、什么是比特币 比特币是一种电子货币,是一种基于密码学的货币,在2008年11月1日由中本聪发表比特币白皮书,文中提出了一种去中心化的电子记账系统,我们平时的电子现金是银行来记账,因为银行的背后是国家信用。去中心化电子记账系统是参与者共同记账。比特币可以防止主权危机、信用风险。其好处不多做赘述,这一层面介绍的文章很多,本文主要从更深层的技术原理角度进行介绍。 二、问题引入 假设现有4个人...
Python 基础(一):入门必备知识
目录1 标识符2 关键字3 引号4 编码5 输入输出6 缩进7 多行8 注释9 数据类型10 运算符10.1 常用运算符10.2 运算符优先级 1 标识符 标识符是编程时使用的名字,用于给变量、函数、语句块等命名,Python 中标识符由字母、数字、下划线组成,不能以数字开头,区分大小写。 以下划线开头的标识符有特殊含义,单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类提供
这30个CSS选择器,你必须熟记(上)
关注前端达人,与你共同进步CSS的魅力就是让我们前端工程师像设计师一样进行网页的设计,我们能轻而易举的改变颜色、布局、制作出漂亮的影音效果等等,我们只需要改几行代码,不需...
国产开源API网关项目进入Apache孵化器:APISIX
点击蓝色“程序猿DD”关注我回复“资源”获取独家整理的学习资料!近日,又有一个开源项目加入了这个Java开源界大名鼎鼎的Apache基金会,开始进行孵化器。项目名称:AP...
程序员接私活怎样防止做完了不给钱?
首先跟大家说明一点,我们做 IT 类的外包开发,是非标品开发,所以很有可能在开发过程中会有这样那样的需求修改,而这种需求修改很容易造成扯皮,进而影响到费用支付,甚至出现做完了项目收不到钱的情况。 那么,怎么保证自己的薪酬安全呢? 我们在开工前,一定要做好一些证据方面的准备(也就是“讨薪”的理论依据),这其中最重要的就是需求文档和验收标准。一定要让需求方提供这两个文档资料作为开发的基础。之后开发
网页实现一个简单的音乐播放器(大佬别看。(⊙﹏⊙))
今天闲着无事,就想写点东西。然后听了下歌,就打算写个播放器。 于是乎用h5 audio的加上js简单的播放器完工了。 欢迎 改进 留言。 演示地点跳到演示地点 html代码如下`&lt;!DOCTYPE html&gt; &lt;html&gt; &lt;head&gt; &lt;title&gt;music&lt;/title&gt; &lt;meta charset="utf-8"&gt
Python十大装B语法
Python 是一种代表简单思想的语言,其语法相对简单,很容易上手。不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了。本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并附上详细的实例代码。如能在实战中融会贯通、灵活使用,必将使代码更为精炼、高效,同时也会极大提升代码B格,使之看上去更老练,读起来更优雅。 1. for - else 什么?不是 if 和 else 才
数据库优化 - SQL优化
前面一篇文章从实例的角度进行数据库优化,通过配置一些参数让数据库性能达到最优。但是一些“不好”的SQL也会导致数据库查询变慢,影响业务流程。本文从SQL角度进行数据库优化,提升SQL运行效率。 判断问题SQL 判断SQL是否有问题时可以通过两个表象进行判断: 系统级别表象 CPU消耗严重 IO等待严重 页面响应时间过长
2019年11月中国大陆编程语言排行榜
2019年11月2日,我统计了某招聘网站,获得有效程序员招聘数据9万条。针对招聘信息,提取编程语言关键字,并统计如下: 编程语言比例 rank pl_ percentage 1 java 33.62% 2 c/c++ 16.42% 3 c_sharp 12.82% 4 javascript 12.31% 5 python 7.93% 6 go 7.25% 7
通俗易懂地给女朋友讲:线程池的内部原理
餐厅的约会 餐盘在灯光的照耀下格外晶莹洁白,女朋友拿起红酒杯轻轻地抿了一小口,对我说:“经常听你说线程池,到底线程池到底是个什么原理?”我楞了一下,心里想女朋友今天是怎么了,怎么突然问出这么专业的问题,但做为一个专业人士在女朋友面前也不能露怯啊,想了一下便说:“我先给你讲讲我前同事老王的故事吧!” 大龄程序员老王 老王是一个已经北漂十多年的程序员,岁数大了,加班加不动了,升迁也无望,于是拿着手里
经典算法(5)杨辉三角
杨辉三角 是经典算法,这篇博客对它的算法思想进行了讲解,并有完整的代码实现。
编写Spring MVC控制器的14个技巧
本期目录 1.使用@Controller构造型 2.实现控制器接口 3.扩展AbstractController类 4.为处理程序方法指定URL映射 5.为处理程序方法指定HTTP请求方法 6.将请求参数映射到处理程序方法 7.返回模型和视图 8.将对象放入模型 9.处理程序方法中的重定向 10.处理表格提交和表格验证 11.处理文件上传 12.在控制器中自动装配业务类 ...
腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹?
昨天,有网友私信我,说去阿里面试,彻底的被打击到了。问了为什么网上大量使用ThreadLocal的源码都会加上private static?他被难住了,因为他从来都没有考虑过这个问题。无独有偶,今天笔者又发现有网友吐槽了一道腾讯的面试题,我们一起来看看。 腾讯算法面试题:64匹马8个跑道需要多少轮才能选出最快的四匹? 在互联网职场论坛,一名程序员发帖求助到。二面腾讯,其中一个算法题:64匹
面试官:你连RESTful都不知道我怎么敢要你?
面试官:了解RESTful吗? 我:听说过。 面试官:那什么是RESTful? 我:就是用起来很规范,挺好的 面试官:是RESTful挺好的,还是自我感觉挺好的 我:都挺好的。 面试官:… 把门关上。 我:… 要干嘛?先关上再说。 面试官:我说出去把门关上。 我:what ?,夺门而去 文章目录01 前言02 RESTful的来源03 RESTful6大原则1. C-S架构2. 无状态3.统一的接
求小姐姐抠图竟遭白眼?痛定思痛,我决定用 Python 自力更生!
点击蓝色“Python空间”关注我丫加个“星标”,每天一起快乐的学习大家好,我是 Rocky0429,一个刚恰完午饭,正在用刷网页浪费生命的蒟蒻...一堆堆无聊八卦信息的网页内容慢慢使我的双眼模糊,一个哈欠打出了三斤老泪,就在此时我看到了一张图片:是谁!是谁把我女朋友的照片放出来的!awsl!太好看了叭...等等,那个背景上的一堆鬼画符是什么鬼?!真是看不下去!叔叔婶婶能忍,隔壁老王的三姨妈的四表...
为啥国人偏爱Mybatis,而老外喜欢Hibernate/JPA呢?
关于SQL和ORM的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行了一番讨论,感触还是有一些,于是就有了今天这篇文。 声明:本文不会下关于Mybatis和JPA两个持久层框架哪个更好这样的结论。只是摆事实,讲道理,所以,请各位看官勿喷。 一、事件起因 关于Mybatis和JPA孰优孰劣的问题,争论已经很多年了。一直也没有结论,毕竟每个人的喜好和习惯是大不相同的。我也看
SQL-小白最佳入门sql查询一
不要偷偷的查询我的个人资料,即使你再喜欢我,也不要这样,真的不好;
项目中的if else太多了,该怎么重构?
介绍 最近跟着公司的大佬开发了一款IM系统,类似QQ和微信哈,就是聊天软件。我们有一部分业务逻辑是这样的 if (msgType = "文本") { // dosomething } else if(msgType = "图片") { // doshomething } else if(msgType = "视频") { // doshomething } else { // doshom...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
“狗屁不通文章生成器”登顶GitHub热榜,分分钟写出万字形式主义大作
一、垃圾文字生成器介绍 最近在浏览GitHub的时候,发现了这样一个骨骼清奇的雷人项目,而且热度还特别高。 项目中文名:狗屁不通文章生成器 项目英文名:BullshitGenerator 根据作者的介绍,他是偶尔需要一些中文文字用于GUI开发时测试文本渲染,因此开发了这个废话生成器。但由于生成的废话实在是太过富于哲理,所以最近已经被小伙伴们给玩坏了。 他的文风可能是这样的: 你发现,...
程序员:我终于知道post和get的区别
是一个老生常谈的话题,然而随着不断的学习,对于以前的认识有很多误区,所以还是需要不断地总结的,学而时习之,不亦说乎
《程序人生》系列-这个程序员只用了20行代码就拿了冠军
你知道的越多,你不知道的越多 点赞再看,养成习惯GitHub上已经开源https://github.com/JavaFamily,有一线大厂面试点脑图,欢迎Star和完善 前言 这一期不算《吊打面试官》系列的,所有没前言我直接开始。 絮叨 本来应该是没有这期的,看过我上期的小伙伴应该是知道的嘛,双十一比较忙嘛,要值班又要去帮忙拍摄年会的视频素材,还得搞个程序员一天的Vlog,还要写BU...
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1...
相关热词 c# clr dll c# 如何orm c# 固定大小的字符数组 c#框架设计 c# 删除数据库 c# 中文文字 图片转 c# 成员属性 接口 c#如何将程序封装 16进制负数转换 c# c#练手项目
立即提问