我正在写小应用程序,现在我发现了一个问题.我需要调用一个(稍后可能是两个)方法(此方法加载一些东西并返回结果)而不会滞后于app的窗口.
我发现类,如Executor或Callable,但我不知道如何与那些工作.
你可以发布任何解决方案,这对我有帮助吗?
谢谢你的所有建议.
编辑:方法必须返回结果.此结果取决于参数.像这样的东西:
public static HtmlPage getPage(String page) throws FailingHttpStatusCodeException, MalformedURLException, IOException {
return webClient.getPage(page);
}
Run Code Online (Sandbox Code Playgroud)
此方法大约需要8-10秒.执行此方法后,可以停止线程.但我需要每2分钟调用一次方法.
编辑:我用这个编辑了代码:
public static HtmlPage getPage(final String page) throws FailingHttpStatusCodeException, MalformedURLException, IOException {
Thread thread = new Thread() {
public void run() {
try {
loadedPage = webClient.getPage(page);
} catch (FailingHttpStatusCodeException | IOException e) {
e.printStackTrace();
}
}
};
thread.start();
try {
return loadedPage;
} catch (Exception e) {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
使用此代码,我再次收到错误(即使我 …
我用Java创建了一个简单的菜单,但我无法弄清楚如何更改按钮的大小.我的菜单看起来像这样:

我希望最后一个按钮与其他按钮一样大小.
tlacTisk.setSize(10,10);
tlacTisk.setPreferredSize(10,10);
Run Code Online (Sandbox Code Playgroud)
不起作用.
代码,我创建按钮和框:
JButton tlacSVG = new JButton();
tlacSVG.setText("Export do SVG");
tlacSVG.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
exportujSVG();
}
});
JButton tlacPNG = new JButton();
tlacPNG.setText("Export do PNG");
tlacPNG.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
exportujPNG();
}
});
JButton tlacTisk = new JButton();
tlacTisk.setText("Tisk...");
tlacTisk.setPreferredSize(new Dimension(50, 25));
tlacTisk.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
tiskni();
}
});
Box boxTlacitek = Box.createVerticalBox();
boxTlacitek.add(Box.createVerticalStrut(5));
boxTlacitek.add(tlacSVG);
boxTlacitek.add(Box.createVerticalStrut(10));
boxTlacitek.add(tlacPNG);
boxTlacitek.add(Box.createVerticalStrut(10));
boxTlacitek.add(tlacTisk);
boxTlacitek.setBorder(BorderFactory.createTitledBorder("Menu"));
okno.add(boxTlacitek, BorderLayout.EAST); …Run Code Online (Sandbox Code Playgroud) 我对当前月份和年份的特定日的回归有问题.我需要例如第15天.直到现在我在FB/IB现有功能中使用:
IB_EncodeDate(EXTRACT(YEAR FROM Current_Date),EXTRACT(Month FROM Current_Date),15)
Run Code Online (Sandbox Code Playgroud)
是否存在将此转换为MSSQL数据库的简单方法?
编辑.我需要以OLE格式输出(例如41,348)来将日期与另一个日期进行比较.我将数据库中的日期与当月的第15天进行比较.
我的应用程序有问题.当我在Eclipse中运行应用程序时,声音播放效果很好,但如果我将应用程序导出到runnable jar,则声音不起作用.
播放声音的方法:
public static synchronized void playSound()
{
new Thread(new Runnable()
{
// The wrapper thread is unnecessary, unless it blocks on the
// Clip finishing; see comments.
public void run()
{
try
{
Clip clip = AudioSystem.getClip();
AudioInputStream inputStream = AudioSystem.getAudioInputStream(getClass().getResourceAsStream("sound.wav"));
clip = AudioSystem.getClip();
clip.open(inputStream);
clip.start();
}
catch (Exception e)
{
System.err.println(e.getMessage());
}
}
}).start();
}
Run Code Online (Sandbox Code Playgroud)
哪里可能是个错误?
我有类似的结构:
<tr>
<td>I WANT THIS</td>
<td>
<a class="unread">text</a>
</td>
<td></td>
</tr>
<tr>
<td></td>
<td>
<a class="read">text</a>
</td>
<td></td>
</tr>
Run Code Online (Sandbox Code Playgroud)
我需要选择<tr>的节点,具有<a>节点与属性[@class='unread'],选择内部<td>版本.
我尝试过//tr[a/@class='unread'],//tr/a[@class='textMsg unread']但没有奏效.我怎样才能得到我的<tr>节点?
我有查询,我在哪里调用函数 StoreFlowsByDates
select
sum(a.beglocalamount+a.localamount)
from
StoreFlowsByDates(ib_encodedate(EXTRACT(YEAR FROM CURRENT_DATE),1 ,1), ib_encodedate(EXTRACT(YEAR FROM CURRENT_DATE), 12 ,31), '', '', '', '', '', '', '', 'N', 'N', 'N', 'N', '1000000101', '') a
Run Code Online (Sandbox Code Playgroud)
此函数在选定的时间段内返回值.我需要编辑此查询以返回一年中每个月的值.就像是:
select
sum(a.beglocalamount+a.localamount),
[SELECTED_MONTH]
from
StoreFlowsByDates(ib_encodedate(EXTRACT(YEAR FROM CURRENT_DATE),[SELECTED_MONTH] ,1), ib_encodedate(EXTRACT(YEAR FROM CURRENT_DATE), [SELECTED_MONTH] ,31), '', '', '', '', '', '', '', 'N', 'N', 'N', 'N', '1000000101', '') a
group by
[SELECTED_MONTH]
Run Code Online (Sandbox Code Playgroud)
但是从1到12的周期.这样的事情甚至可能吗?
我试图通过VRPN服务器将我的应用程序连接到OpenViBE.我的应用程序运行良好,直到我尝试添加代码将我的应用程序连接到VRPN服务器.
我的代码看起来像这样:
MainWindow.c 码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtUiTools/QUiLoader>
#include <QFile>
#include <QMessageBox>
#include <QFileDialog>
#include <iostream>
using namespace std;
#include "vrpn_Analog.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
currentImage = 0;
labelSize = ui->label_2->size();
createActions();
openFileDialog();
}
void MainWindow::checkChannels()
{
vrpn_Analog_Remote *vrpnAnalog = new vrpn_Analog_Remote("Mouse0@localhost");
vrpnAnalog->register_change_handler( 0, handle_analog );
}
void VRPN_CALLBACK MainWindow::handle_analog( void* userData, const vrpn_ANALOGCB a )
{
int nbChannels = a.num_channel;
cout << "Analog : ";
for( int i=0; i < a.num_channel; i++ ) …Run Code Online (Sandbox Code Playgroud) 我需要在当前(和之前)月的第一天之前获得日期,即30天(之后我将使用90或18O).我写了这个,但我认为这是不必要的复杂,所以我来这里寻求帮助.这有什么办法可以简化这个:
ib_encodedate(EXTRACT(YEAR from (dateadd(-30-datediff(day from cast(EXTRACT(MONTH from CURRENT_DATE)
|| '-1-'
|| EXTRACT(YEAR from CURRENT_DATE) as date) to date 'now') DAY to CURRENT_DATE))), EXTRACT(MONTH from (dateadd(-30-datediff(day from cast(EXTRACT(MONTH from CURRENT_DATE)
|| '-1-'
|| EXTRACT(YEAR from CURRENT_DATE) as date) to date 'now') DAY to CURRENT_DATE))),EXTRACT(DAY from (dateadd(-30-datediff(day from cast(EXTRACT(MONTH from CURRENT_DATE)
|| '-1-'
|| EXTRACT(YEAR from CURRENT_DATE) as date) to date 'now') DAY to CURRENT_DATE))))
Run Code Online (Sandbox Code Playgroud)
在数据库中我有日期double,所以我必须使用函数ib_encodedate将日期转换为double与数据库中的日期进行比较.功能有原型:
ib_encodedate(INT year, INT month, INT day)
Run Code Online (Sandbox Code Playgroud)
我需要写一个月的最后一天.
谢谢你的帮助.
我有这个T-SQL代码的问题:
SELECT
DQ.Code as DQ_Code, II.OrdNumber AS Cislo, II.Id As ID,
convert(varchar(10), cast(II.DocDate$DATE as datetime), 104) as DatumPlneni,
convert(varchar(10), cast(II.DueDate$DATE as datetime), 104) as DatumSplatnosti,
F.Name as Firma, F.ID as FIRMID,
(II.LocalAmount - II.LocalCreditAmount) as LocalAmount,
(II.LocalPaidAmount) as LocalPaidAmount,
(II.LocalAmount - II.LocalCreditAmount - II.LocalPaidAmount + II.LocalPaidCreditAmount) as LocalNotPaidAmount,
case
when
((case
when len(convert(varchar(10), cast(II.DueDate$DATE as datetime), 104) )=10
then convert(varchar(10), cast(II.DueDate$DATE as datetime), 104)
when ((len(convert(varchar(10), cast(II.DueDate$DATE as datetime), 104) )=9) and (substring(convert(varchar(10), cast(II.DueDate$DATE as datetime), 104) from 7 for …Run Code Online (Sandbox Code Playgroud) 我正在编辑从FireBird到SQL Server 2008的代码,我的语法有问题.我不确定错误在哪里.我没有编写这段代码,我在SQL Server中并不完全理解,所以我需要建议.
select *
from(
select A.*,floor(Hotove) Hotove,floor(Rozpracovane) Rozpracovane,floor(buffer) buffer from (
select typ,min(ID) ID ,
convert(varchar(10), cast(min(case when PocetDnuMy<>-1000 then Dat2 else
cast(Dateadd(year, 5, getDate()) as float) end ) as datetime), 104) Datum,
min(dat2) dat2, min(Description) Description,
min(Rada) Rada, min(CisloDokladu) CisloDokladu,
min(JmenoFirmy) JmenoFirmy, min(Produkt) Produkt,
min(CastProduktu) CastProduktu, min(ResStrana) ResStrana,
Resitel, min(IC) IC, min(ICID) ICID,
case when max(PocetDnuMy)>182 then 'color: red;font-weight:bold;Text-decoration:underline'
when max(PocetDnuMy )>10 then 'color: red;font-weight:bold'
when max(PocetDnuMy )>0 then 'color: red'
when max(PocetDnuMy )<0 then 'color: …Run Code Online (Sandbox Code Playgroud)