基本上我试图使用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中的线程原理,或类似的方法不起作用.
但是我可以用什么呢?
设置:我有一个本地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) 我正在尝试使用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)
我错过了什么?有没有办法绕过这个或解决这个问题的方法?提前致谢!
我现在面对一个艰难的,至少对我来说很难!
我正在使用此代码捕获按键事件,即使窗口没有焦点也能正常工作.
此外,我希望能够在任何其他具有焦点的应用程序使用之前使用键事件.
搜索后搜索没有给我带来任何结果,有谁知道如何实现这一目标?
当我在平板电脑上而不是手机上运行我的应用程序时(我从未尝试过),当我开始某个活动时,我会得到此堆栈跟踪。我浏览了该活动的.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) 有没有办法查看通过Firebase发送的所有通知?
我在文档或其他任何地方都找不到任何内容.
如果可以在控制台上实现它会很酷,但HTTP也会这样做!有任何想法吗?
我有时间在几秒钟内从我们的计算机"第0天"(又名1970年1月1日午夜),我想将其转换为LocalDateTime实例.这段代码会这样做:
LocalDateTime dateTime = LocalDateTime.ofEpochSecond(seconds, 0, ZoneOffset.UTC)
Run Code Online (Sandbox Code Playgroud)
不过,我需要这个LocalDateTime在我的时区.更改ZoneOffset.UTC
为ZineOffset.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值?
CheckBoxTableCell
当用户单击该复选框时,我TableView
不想执行某些代码。\n需要在检查 CheckBox 之前以及更改关联属性之前执行此代码。
由于CheckBoxTableCell
不触发startEdit()
,commitEdit()
等等,我需要另一个可以放置代码的点。
updateItem()
就太晚了,因为那里的值已经改变了。
有人知道我可以在其他地方插入我的代码吗?或者我最好只编写自己的 CheckBoxTableCell 吗?
\n\n对于那些想要进一步思考的人:当用户选中复选框时,我想运行一段代码来检查他的决定是否可能会在以后给他带来问题。当属性更改时,我有一个changeListener,它将新值上传到数据库。如果可能有任何问题(我的代码返回 true),那么应该有强制性错误消息:“你真的想这样做...blabla”并且只有当他确认应该实际选中该复选框时,值才会更改并上传至数据库。
\n\n这就是我的设置方式CheckBoxTableCell
:
//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\nsomeBooleanProperty
有一个听众。当更改为 true 时,statusProperty
更改为1
.
此代码片段位于TableView
s 底层类的构造函数中。每当用户单击复选框时,就会执行它。
this.status.addListener((ObservableValue<? extends Number> observable, Number oldValue, Number newValue) -> …
Run Code Online (Sandbox Code Playgroud) 我在合理的时间内用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) android ×3
java ×3
c# ×2
javafx ×2
datagridview ×1
datetime ×1
firebase ×1
htmlunit ×1
keyboard ×1
keyevent ×1
sqlite ×1
tableview ×1
thread-sleep ×1
wait ×1
web-crawler ×1