小编Mav*_*283的帖子

让JavaFX等待并继续使用代码

基本上我试图使用JavaFX做一个简短的效果.我有一个心脏的形状(从两个圆圈和一个多边形加起来),我可以使用double值改变大小p."标准尺寸"将是p = 1.0;.

我试图给心脏增加一个泵效应.我有方法pumpOnce():

public void pumpOnce(){
    p = p + 1;
    initHeart();
    //Here goes what ever it takes to make stuff working!!
    p = p - 1;
    initHeart();
}
Run Code Online (Sandbox Code Playgroud)

initHeart()吸取内心的基础p.

我发现Thread.sleep();由于JavaFX中的线程原理,或类似的方法不起作用.

但是我可以用什么呢?

javafx wait thread-sleep

9
推荐指数
2
解决办法
3万
查看次数

使用来自SQLite的数据填充ExpandableListView

设置:我有一个本地SQLite数据库,可以保存电影的放映时间.一些列是"日期","ID","时间"......

目的: 我希望将所有这些放映时间放入ExpandableListView,而日期将成为父项.

问题:没有显示任何内容.什么都没有.我很难理解为什么.有没有人有想法?

一些代码:最重要的东西是在顶部,当你向下滚动时,变得越来越不重要了......

这是我试图实现的代码onCreate(),在Activity中调用它:

String sql = "SELECT rowid _id,* FROM " + Statics.DBSHOWS + ";";
Cursor movieCursor = database.rawQuery(sql,null);
movieCursor.moveToFirst();
adapter = new ExpandableListAdapter(movieCursor, this,
            android.R.layout.simple_list_item_1,
            android.R.layout.simple_list_item_2,
            new String[]{Statics.DBSHOWS_DATE},
            new int[]{android.R.id.text1},
            new String[]{Statics.DBSHOWS_TIME, Statics.DBSHOWS_ID},
            new int[]{android.R.id.text1, android.R.id.text2});

movieListView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)

这是我的ExpandableListAdapter:

public class ExpandableListAdapter extends SimpleCursorTreeAdapter {
    Context context;

    public ExpandableListAdapter(Cursor cursor, Context context, int groupLayout,
                                 int childLayout, String[] groupFrom, int[] groupTo, String[] childrenFrom,
                                 int[] childrenTo) {
        super(context, cursor, groupLayout, groupFrom, groupTo,
                childLayout, childrenFrom, …
Run Code Online (Sandbox Code Playgroud)

sqlite android expandablelistview

9
推荐指数
1
解决办法
787
查看次数

htmlunit无法从undefined中读取属性"push"

我正在尝试使用htmlunit抓取网站.每当我运行它,它只输出以下错误:

Caused by: net.sourceforge.htmlunit.corejs.javascript.EcmaError: TypeError: Cannot read property "push" from undefined (https://www.kinoheld.de/dist/prod/0.4.7/widget.js#1)
Run Code Online (Sandbox Code Playgroud)

现在我对JS不太了解,但我读到的push是某种数组操作.这对我来说似乎是标准的,我不知道为什么htmlunit不支持它.

这是我到目前为止使用的代码:

public static void main(String[] args) throws IOException {
    WebClient web = new WebClient(BrowserVersion.FIREFOX_45);
    web.getOptions().setUseInsecureSSL(true);
    String url = "https://www.kinoheld.de/kino-muenchen/royal-filmpalast/vorstellung/280823/?mode=widget&showID=280828#panel-seats";
    web.getOptions().setThrowExceptionOnFailingStatusCode(false);
    web.waitForBackgroundJavaScript(9000);
    HtmlPage response = web.getPage(url);

    System.out.println(response.getTitleText());
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?有没有办法绕过这个或解决这个问题的方法?提前致谢!

java web-crawler htmlunit

7
推荐指数
2
解决办法
468
查看次数

C#消耗全局关键事件

我现在面对一个艰难的,至少对我来说很难!

我正在使用此代码捕获按键事件,即使窗口没有焦点也能正常工作.

此外,我希望能够在任何其他具有焦点的应用程序使用之前使用键事件.

搜索后搜索没有给我带来任何结果,有谁知道如何实现这一目标?

c# keyboard keyevent

7
推荐指数
1
解决办法
310
查看次数

IllegalArgumentException:活动中的宽度和高度必须> 0

当我在平板电脑上而不是手机上运行我的应用程序时(我从未尝试过),当我开始某个活动时,我会得到此堆栈跟踪。我浏览了该活动的.xml文件,以查找在运行时可能为0的所有内容,并替换了所有想到的内容(例如?attr/actionBarSize),但它没有任何改变。我最大的问题:堆栈跟踪太长,无法到达异常的起源。有什么想法可以找到我的错误吗?PS:我不知道该活动中的任何位图,这使其更加混乱

java.lang.IllegalArgumentException: width and height must be > 0                                                                        
     at android.graphics.Bitmap.createBitmap(Bitmap.java:933)                                                                           
     at android.graphics.Bitmap.createBitmap(Bitmap.java:912)                                                                         
     at android.graphics.Bitmap.createBitmap(Bitmap.java:879)                                                                       
     at android.graphics.drawable.VectorDrawable$VectorDrawableState.createCachedBitmapIfNeeded(VectorDrawable.java:711) 
     at android.graphics.drawable.VectorDrawable.draw(VectorDrawable.java:278)
     at android.graphics.drawable.DrawableContainer.draw(DrawableContainer.java:76)
     at android.widget.ExpandableListView.dispatchDraw(ExpandableListView.java:460)
     at android.view.View.draw(View.java:16272)
     at android.widget.AbsListView.draw(AbsListView.java:5983)
     at android.view.View.updateDisplayListIfDirty(View.java:15192)
     at android.view.View.getDisplayList(View.java:15215)
     at android.view.View.draw(View.java:15990)
     at android.view.ViewGroup.drawChild(ViewGroup.java:3708)
     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3502)
     at android.view.View.draw(View.java:16272)
     at android.view.View.updateDisplayListIfDirty(View.java:15192)
     at android.view.View.getDisplayList(View.java:15215)
     at android.view.View.draw(View.java:15990)
     at android.view.ViewGroup.drawChild(ViewGroup.java:3708)
     at android.support.design.widget.CoordinatorLayout.drawChild(CoordinatorLayout.java:1127)
     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3502)
     at android.view.View.updateDisplayListIfDirty(View.java:15187)
     at android.view.View.getDisplayList(View.java:15215)
     at android.view.View.draw(View.java:15990)
     at android.view.ViewGroup.drawChild(ViewGroup.java:3708)
     at android.support.v4.widget.DrawerLayout.drawChild(DrawerLayout.java:1369)
     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3502)
     at android.view.View.draw(View.java:16272)
     at android.view.View.updateDisplayListIfDirty(View.java:15192)
     at android.view.View.getDisplayList(View.java:15215)
     at android.view.View.draw(View.java:15990)
     at android.view.ViewGroup.drawChild(ViewGroup.java:3708)
     at android.view.ViewGroup.dispatchDraw(ViewGroup.java:3502)
     at …
Run Code Online (Sandbox Code Playgroud)

android

5
推荐指数
1
解决办法
1326
查看次数

获取Firebase通知列表?

有没有办法查看通过Firebase发送的所有通知?

我在文档或其他任何地方都找不到任何内容.

如果可以在控制台上实现它会很酷,但HTTP也会这样做!有任何想法吗?

android firebase firebase-cloud-messaging

5
推荐指数
1
解决办法
5350
查看次数

从秒开始获取LocalDateTime,包括时区

我有时间几秒钟内从我们的计算机"第0天"(又名1970年1月1日午夜),我想将其转换为LocalDateTime实例.这段代码会这样做:

LocalDateTime dateTime = LocalDateTime.ofEpochSecond(seconds, 0, ZoneOffset.UTC)
Run Code Online (Sandbox Code Playgroud)

不过,我需要这个LocalDateTime在我的时区.更改ZoneOffset.UTCZineOffset.of("+2)将使LocalDateTime显示正确的时间.(对于,我们说巴黎截至2015年8月31日)

但这或多或少是一种不完美的解决方法,因为它不会照顾夏令时.

所以我尝试了一下,找到了ZonedDateTime课程.它也没有帮助我,但我被困在这里:

LocalDateTime localDateTime = LocalDateTime.ofEpochSecond(seconds, 0, ZoneOffset.UTC);
ZonedDateTime zonedDateTime = ZonedDateTime.of(localDateTime,ZoneId.systemDefault());
Run Code Online (Sandbox Code Playgroud)

这根本不起作用,因为ZonedDateTime包含一个LocalDateTime然后包含LocalTime我在UTC中的时间,而不是在我当前的时区.

那么你如何LocalDateTime从(优选的)系统时区中获得一个UTC时间段(如果需要),从UTC秒到epoche值?

java datetime

3
推荐指数
1
解决办法
5147
查看次数

JavaFX CheckBoxTableCell 捕获 ClickEvent

CheckBoxTableCell当用户单击该复选框时,我TableView不想执行某些代码。\n需要在检查 CheckBox 之前以及更改关联属性之前执行此代码。

\n\n

由于CheckBoxTableCell不触发startEdit()commitEdit()等等,我需要另一个可以放置代码的点。

\n\n

updateItem()就太晚了,因为那里的值已经改变了。

\n\n

有人知道我可以在其他地方插入我的代码吗?或者我最好只编写自己的 CheckBoxTableCell 吗?

\n\n

对于那些想要进一步思考的人:当用户选中复选框时,我想运行一段代码来检查他的决定是否可能会在以后给他带来问题。当属性更改时,我有一个changeListener,它将新值上传到数据库。如果可能有任何问题(我的代码返回 true),那么应该有强制性错误消息:“你真的想这样做...blabla”并且只有当他确认应该实际选中该复选框时,值才会更改并上传至数据库。

\n\n

这就是我的设置方式CheckBoxTableCell

\n\n
    //init cell factories\n    Callback<TableColumn<PublicMovie, Boolean>, TableCell<PublicMovie, Boolean>> checkBoxCellFactory\n            = (TableColumn<PublicMovie, Boolean> p) -> new CheckBoxTableCell<>();\n    //Assign Column\n    allMoviesCheckBoxColumn = (TableColumn<PublicMovie, Boolean>) allMoviesTableView.getColumns().get(0);\n    //Set CellValueFactory\n    allMoviesCheckBoxColumn.setCellValueFactory(cellData -> cellData.getValue().getSomeBooleanProperty();\n
Run Code Online (Sandbox Code Playgroud)\n\n

someBooleanProperty有一个听众。当更改为 true 时,statusProperty更改为1.

\n\n

此代码片段位于TableViews 底层类的构造函数中。每当用户单击复选框时,就会执行它。

\n\n
    this.status.addListener((ObservableValue<? extends Number> observable, Number oldValue, Number newValue) -> …
Run Code Online (Sandbox Code Playgroud)

java javafx tableview

3
推荐指数
1
解决办法
2462
查看次数

非常频繁地更新datagridview

我在合理的时间内用C#刷新DataGridView时遇到麻烦(我是btw的新手,我习惯于Java ...)。

我正在通过每秒20个数据包发送的网络获取数据。我想解析数据并将其放在DataGridView中。我还想将DataGridView的更新间隔从0.1秒调整为1分钟。

因此,我创建了一个额外的线程,该线程读取程序包并将其解析为数组。我还有一个计时器,可用于更改时间间隔。在每个计时器刻度上,我都将数据源重新分配给DataGridView。

有趣的是,当我这样做时,即使我将计时器设置为0.1秒,也只会每秒触发一次。如果我不刷新DataGridView,它会被每秒触发10次,如预期的那样。

因此,我假设我的更新DataGridView的方法太耗时。但是,我必须做些什么才能使其更加高效,因此我可以每秒更新10次而没有任何问题?

这是我使用的代码:

public MyForm()
    {
        InitializeComponent();

        timer = new System.Windows.Forms.Timer();
        timer.Interval = (1 * 1000); // 1 secs
        timer.Tick += new EventHandler(timer_Tick);
        timer.Start();

        readNetworkValues = true;
        networkReader = new Thread(() =>
        {
            Thread.CurrentThread.IsBackground = true;
            byte[] data = new byte[1024];
            IPEndPoint ipep = new IPEndPoint(IPAddress.Any, 49003);
            UdpClient newsock = new UdpClient(ipep);
            IPEndPoint sender = new IPEndPoint(IPAddress.Any, 0);

            while (readNetworkValues)
            {
                data = newsock.Receive(ref sender);
                dataSet = parseData(data); //Decrypts the data
            }
        newsock.Close();
        });
        networkReader.Start();
    } …
Run Code Online (Sandbox Code Playgroud)

c# datagridview

3
推荐指数
1
解决办法
1021
查看次数