javaFX怎么设置Button的位置?

求问?

在javafFX中如何改变Button的位置?

1个回答

建议使用Smart GWT 原来google开发,后来给了另外一个公司,去这个网站看看https://www.smartclient.com/

qq_42585466
哦吼。。 好的,感谢大佬
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何给JavaFX的Button设置图片?

我写了绝对路径 但是不好使 ``` public class Demo1 extends Application { @Override public void start(Stage primaryStage) throws Exception { //Button btn = new Button("Say Hi!"); Button btn = new Button("Say Hi!", new ImageView("D:\\JavaFX Workspace 1.0\\JavaFx\\src\\iamges\\search-label.png")); btn.setOnAction((e) -> { System.out.println("Say Hi!"); }); StackPane root = new StackPane(); root.getChildren().add(btn); Scene scene = new Scene(root, 300, 300); primaryStage.setScene(scene); primaryStage.show(); } public static void main(String[] args) { launch(args); } } ```

关于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)

关于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按钮点击后事件响应不完全

给按钮绑定了一个生成javafx中折线图的时间,界面是通过fxml构建的所以时间也是用fxml绑定的。在第一次点击按钮之后,显示的图表并不完整,横坐标的值显示不完整,绑定的node也没有显示出来,再次点击之后才能显示。 如图,这是第一次点击:![图片说明](https://img-ask.csdn.net/upload/201705/12/1494566269_652389.png) 再次点击过后:![图片说明](https://img-ask.csdn.net/upload/201705/12/1494566283_487347.png) 用于构建折线图的数据没有变动过。 下面是这个方法的代码: public void setChart(StockCondition sc1,StockCondition sc2){ Close.getData().clear(); log.getData().clear(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); DecimalFormat df2 = new DecimalFormat("######0.00000000"); Name1.setText(sc1.getName()); High1.setText(String.valueOf(sc1.getPeak())); Low1.setText(String.valueOf(sc1.getValley())); Log1.setText(df2.format(sc1.getProfit2())); Name2.setText(sc2.getName()); High2.setText(String.valueOf(sc2.getPeak())); Low2.setText(String.valueOf(sc2.getValley())); Log2.setText(df2.format(sc2.getProfit2())); //下面设置第一个表 int amount1=sc1.getSum().size(); int amount2=sc2.getSum().size(); int amount=0; if(amount1<amount2){ amount=amount1; }else{ amount=amount2; } double interval=0; double location=0; int middle=0; if(amount>100){ interval=(double)amount/99; middle=98; } else{ interval=1; middle=amount-2; } System.out.println("interval is "+interval); System.out.println("middle is "+middle); System.out.println("amount is "+amount); System.out.println(sc2.getSum().get(sc2.getSum().size()-1).getDate()); yAxis.setAutoRanging(false); if(sc1.getPeak()>sc2.getPeak()){ yAxis.setUpperBound(sc1.getPeak()*1.1); } else{ yAxis.setUpperBound(sc2.getPeak()*1.1); } if(sc1.getValley()<sc2.getValley()){ yAxis.setLowerBound(sc1.getValley()*0.9); } else{ yAxis.setLowerBound(sc2.getValley()*0.9); } BigDecimal bg = new BigDecimal((yAxis.getUpperBound()-yAxis.getLowerBound())/5).setScale(1, RoundingMode.UP); yAxis.setTickUnit(bg.doubleValue()); xAxis.setTickMarkVisible(false); xAxis.setTickLabelRotation(5); XYChart.Series series1 = new XYChart.Series(); XYChart.Series series2 = new XYChart.Series(); series1.setName(sc1.getName()); series2.setName(sc2.getName()); Close.setTitle("每日股价"); location=0; for(int i=0;i<middle+2;i++){ XYChart.Data data1=new XYChart.Data(sdf.format(sc1.getSum().get((int)location).getDate()),sc1.getSum().get((int)location).getClose()); Button circle1=new Button(); circle1.setPrefSize(7, 7); Tooltip tooltip1 = new Tooltip(); tooltip1.setText(sc1.getName()+"\n"+sdf.format(sc1.getSum().get((int)location).getDate())+"\n股价:"+String.valueOf(sc1.getSum().get((int)location).getClose())); circle1.setTooltip(tooltip1); data1.setNode(circle1); circle1.setStyle("-fx-background-color:#FF7F00"); XYChart.Data data2=new XYChart.Data(sdf.format(sc1.getSum().get((int)location).getDate()),sc2.getSum().get((int)location).getClose()); Button circle2=new Button(); circle2.setPrefSize(7, 7); Tooltip tooltip2 = new Tooltip(); tooltip2.setText(sc2.getName()+"\n"+sdf.format(sc1.getSum().get((int)location).getDate())+"\n股价:"+String.valueOf(sc2.getSum().get((int)location).getClose())); circle2.setTooltip(tooltip2); data2.setNode(circle2); circle2.setStyle("-fx-background-color:#FFB90F"); series1.getData().add(data1); series2.getData().add(data2); location=location+interval; if(location>=amount-1){ location=amount-1; } } System.out.println("location is "+location); Close.getData().addAll(series1,series2); //下面设置第二个表 XYChart.Series seriesLog1 = new XYChart.Series(); XYChart.Series seriesLog2 = new XYChart.Series(); seriesLog1.setName(sc1.getName()); seriesLog2.setName(sc2.getName()); log.setTitle("每日对数收益率"); location=0; for(int i=0;i<middle-1;i++){ XYChart.Data data3=new XYChart.Data(sdf.format(sc1.getSum().get((int)location).getDate()),sc1.getSum().get((int)location).getProfit()); Button circle3=new Button(); circle3.setPrefSize(7, 7); Tooltip tooltip3 = new Tooltip(); tooltip3.setText(sc1.getName()+"\n"+sdf.format(sc1.getSum().get((int)location).getDate())+"\n股价:"+String.valueOf(sc1.getSum().get((int)location).getProfit())); circle3.setTooltip(tooltip3); data3.setNode(circle3); circle3.setStyle("-fx-background-color:#FF7F00"); XYChart.Data data4=new XYChart.Data(sdf.format(sc1.getSum().get((int)location).getDate()),sc2.getSum().get((int)location).getProfit()); Button circle4=new Button(); circle4.setPrefSize(7, 7); Tooltip tooltip4 = new Tooltip(); tooltip4.setText(sc2.getName()+"\n"+sdf.format(sc1.getSum().get((int)location).getDate())+"\n收益率:"+String.valueOf(sc2.getSum().get((int)location).getProfit())); circle4.setTooltip(tooltip4); data4.setNode(circle4); circle4.setStyle("-fx-background-color:#FFB90F"); seriesLog1.getData().add(data3); seriesLog2.getData().add(data4); location=location+interval; if(location>=amount-1){ location=amount-1; } } log.getData().addAll(seriesLog1,seriesLog2); xAxis.setTickLabelsVisible(true); xAxis1.setTickLabelsVisible(true); Close.setHorizontalGridLinesVisible(false); Close.setVerticalGridLinesVisible(false); log.setHorizontalGridLinesVisible(false); log.setVerticalGridLinesVisible(false); Close.setCreateSymbols(false); log.setCreateSymbols(false); log.setVisible(true); Close.setVisible(true); }

javaFX的ScrollPane如何改变滚动条的大小呢?javaFX的ScrollPane如何改变

javaFX的ScrollPane如何改变滚动条的大小呢?javaFX的ScrollPane如何改变滚动条的大小呢?

javafx 界面跳转怎么做

javafx只有一个舞台,界面跳转怎么做?swing直接调用一个jframe,fx中该真么实现?

JavaFX-CSS中label字体加粗怎么实现

使用-fx-font:bloder 12px "宋体";怎么控制不了啊,求救。。。。

新人问题 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如何实现 点击按钮选择本地文件上传到服务器

请问大神 使用JavaFX如何实现 点击按钮选择本地文件上传到服务器 JavaFX貌似没有这个UI控件 求帮忙! 类似如下图片所示 ![图片说明](https://img-ask.csdn.net/upload/201605/03/1462247330_344309.jpg)

javaFX节点的旋转问题

我想把一个pane绕着自身中心旋转,但是一旦调整窗口大小,该pane的旋转中心是scene 的中心。我的setrotate函数只有double angle这个参数,不能设置旋转基准点的x,y。是 e(fx)clipse的问题吗?**怎么解决这个绕自身中心旋转的问题呢?**

JavaFx如何实现窗口及控件自适应大小?

# **# 如图:** ## **放大前** ![图片说明](https://img-ask.csdn.net/upload/201904/14/1555243893_268241.png) ## **放大后** ![图片说明](https://img-ask.csdn.net/upload/201904/14/1555243910_172175.png) **fxml如下:** ![图片说明](https://img-ask.csdn.net/upload/201904/16/1555406485_705216.png)

javafx中点击按钮弹出自定义窗口如何实现

如题,用代码如何实现? 哪位帮帮忙 , 谢谢了! 我想要点击某个按钮,弹出一个窗口,那个窗口里再添加多选框\文本域等

JavaFX中如何在表格中添加一列按钮

使用JavaFX,想要使Tableview中的某一列 TableColumn 是按钮button ,该如何实现 ??? 急求,谢谢!!!

求一个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 的 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> ```

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 在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 } } ```

想通过frame的button跳转到javafx的listview

想通过frame的button跳转到javafx的listview,发现第一次关闭javafx窗口后再次打开就会报错,因为它提示Application launch must not be called more than once,问题是我窗口已经关闭了,不能被调用两次怎么解决呢? frame上的button监听代码如下: button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated method stub new Thread(new Runnable() { // @Override public void run() { // TODO Auto-generated method stub ListViewSample listViewSample=new ListViewSample(); listViewSample.main(null); //listViewSample.start(null); } }).start(); // listViewSample.main(); } }); javafx代码如下 public class ListViewSample extends Application { // public static final ObservableList data // = FXCollections.observableArrayList(); public ObservableList<String> strList=FXCollections.observableArrayList("红色","黄色","绿色"); public static void main(String[] args) { launch(args); } @Override public void start(Stage primaryStage) { //Platform.setImplicitExit(true); primaryStage.setTitle("List View Sample"); ListView<String> listView2=new ListView<>(); listView2.setItems(strList); listView2.setPrefSize(400, 200); StackPane root = new StackPane(); root.getChildren().add(listView2); primaryStage.setScene(new Scene(root, 400, 200)); primaryStage.show(); primaryStage.setOnCloseRequest(new EventHandler<WindowEvent>() { @Override public void handle(WindowEvent event) { System.out.print("监听到窗口关闭"); } }); listView2.getSelectionModel().selectedItemProperty().addListener(new ChangeListener<Object>() { @Override public void changed(ObservableValue<? extends Object> observable, Object oldValue, Object newValue) { // TODO Auto-generated method stub EsitFrame esitFrame=new EsitFrame(); esitFrame.setVisible(true); System.out.println(newValue); // frame.add(label); } }); } 主要是想实现点击button传输指令到单片机,单片机返回的数据利用listview显示返回的数据,然后点击每个item再触发其他事件

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); } } ``` 求解决。

大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了

大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

程序员请照顾好自己,周末病魔差点一套带走我。

程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。

ArrayList源码分析(入门篇)

ArrayList源码分析 前言: 写这篇博客的主要原因是,在我上一次参加千牵科技Java实习生面试时,有被面试官问到ArrayList为什么查找的速度较快,插入和删除的速度较慢?当时我回答得不好,很大的一部分原因是因为我没有阅读过ArrayList源码,虽然最后收到Offer了,但我拒绝了,打算寒假学得再深入些再广泛些,下学期开学后再去投递其他更好的公司。为了更加深入理解ArrayList,也为

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

String s = new String(" a ") 到底产生几个对象?

老生常谈的一个梗,到2020了还在争论,你们一天天的,哎哎哎,我不是针对你一个,我是说在座的各位都是人才! 上图红色的这3个箭头,对于通过new产生一个字符串(”宜春”)时,会先去常量池中查找是否已经有了”宜春”对象,如果没有则在常量池中创建一个此字符串对象,然后堆中再创建一个常量池中此”宜春”对象的拷贝对象。 也就是说准确答案是产生了一个或两个对象,如果常量池中原来没有 ”宜春” ,就是两个。...

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

玩转springboot启动banner定义所得

最近接手了一个springboot项目,不是不熟悉这个框架,启动时打印的信息吸引了我。 这不是我熟悉的常用springboot的打印信息啊,我打开自己的项目: 还真是的,不用默认的感觉也挺高大上的。一时兴起,就去研究了一下源代码,还正是有些收获,稍后我会总结一下。正常情况下做为一个老程序员,是不会对这种小儿科感兴趣的,不就是一个控制台打印嘛。哈哈! 于是出于最初的好奇,研究了项目的源代码。看到

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

男生更看重女生的身材脸蛋,还是思想?

往往,我们看不进去大段大段的逻辑。深刻的哲理,往往短而精悍,一阵见血。问:产品经理挺漂亮的,有点心动,但不知道合不合得来。男生更看重女生的身材脸蛋,还是...

为什么程序员做外包会被瞧不起?

二哥,有个事想询问下您的意见,您觉得应届生值得去外包吗?公司虽然挺大的,中xx,但待遇感觉挺低,马上要报到,挺纠结的。

当HR压你价,说你只值7K,你该怎么回答?

当HR压你价,说你只值7K时,你可以流畅地回答,记住,是流畅,不能犹豫。 礼貌地说:“7K是吗?了解了。嗯~其实我对贵司的面试官印象很好。只不过,现在我的手头上已经有一份11K的offer。来面试,主要也是自己对贵司挺有兴趣的,所以过来看看……”(未完) 这段话主要是陪HR互诈的同时,从公司兴趣,公司职员印象上,都给予对方正面的肯定,既能提升HR的好感度,又能让谈判气氛融洽,为后面的发挥留足空间。...

面试:第十六章:Java中级开发(16k)

HashMap底层实现原理,红黑树,B+树,B树的结构原理 Spring的AOP和IOC是什么?它们常见的使用场景有哪些?Spring事务,事务的属性,传播行为,数据库隔离级别 Spring和SpringMVC,MyBatis以及SpringBoot的注解分别有哪些?SpringMVC的工作原理,SpringBoot框架的优点,MyBatis框架的优点 SpringCould组件有哪些,他们...

面试阿里p7,被按在地上摩擦,鬼知道我经历了什么?

面试阿里p7被问到的问题(当时我只知道第一个):@Conditional是做什么的?@Conditional多个条件是什么逻辑关系?条件判断在什么时候执...

终于懂了TCP和UDP协议区别

终于懂了TCP和UDP协议区别

你打算用Java 8一辈子都不打算升级到Java 14,真香

我们程序员应该抱着尝鲜、猎奇的心态,否则就容易固步自封,技术停滞不前。

无代码时代来临,程序员如何保住饭碗?

编程语言层出不穷,从最初的机器语言到如今2500种以上的高级语言,程序员们大呼“学到头秃”。程序员一边面临编程语言不断推陈出新,一边面临由于许多代码已存在,程序员编写新应用程序时存在重复“搬砖”的现象。 无代码/低代码编程应运而生。无代码/低代码是一种创建应用的方法,它可以让开发者使用最少的编码知识来快速开发应用程序。开发者通过图形界面中,可视化建模来组装和配置应用程序。这样一来,开发者直...

面试了一个 31 岁程序员,让我有所触动,30岁以上的程序员该何去何从?

最近面试了一个31岁8年经验的程序猿,让我有点感慨,大龄程序猿该何去何从。

大三实习生,字节跳动面经分享,已拿Offer

说实话,自己的算法,我一个不会,太难了吧

程序员垃圾简历长什么样?

已经连续五年参加大厂校招、社招的技术面试工作,简历看的不下于万份 这篇文章会用实例告诉你,什么是差的程序员简历! 疫情快要结束了,各个公司也都开始春招了,作为即将红遍大江南北的新晋UP主,那当然要为小伙伴们做点事(手动狗头)。 就在公众号里公开征简历,义务帮大家看,并一一点评。《启舰:春招在即,义务帮大家看看简历吧》 一石激起千层浪,三天收到两百多封简历。 花光了两个星期的所有空闲时...

《经典算法案例》01-08:如何使用质数设计扫雷(Minesweeper)游戏

我们都玩过Windows操作系统中的经典游戏扫雷(Minesweeper),如果把质数当作一颗雷,那么,表格中红色的数字哪些是雷(质数)?您能找出多少个呢?文中用列表的方式罗列了10000以内的自然数、质数(素数),6的倍数等,方便大家观察质数的分布规律及特性,以便对算法求解有指导意义。另外,判断质数是初学算法,理解算法重要性的一个非常好的案例。

立即提问
相关内容推荐