小编Sk1*_*1X1的帖子

在新线程中调用方法的简便方法

我正在写小应用程序,现在我发现了一个问题.我需要调用一个(稍后可能是两个)方法(此方法加载一些东西并返回结果)而不会滞后于app的窗口.

我发现类,如ExecutorCallable,但我不知道如何与那些工作.

你可以发布任何解决方案,这对我有帮助吗?

谢谢你的所有建议.

编辑:方法必须返回结果.此结果取决于参数.像这样的东西:

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 multithreading javafx ui-thread

13
推荐指数
3
解决办法
6万
查看次数

按钮大小(Java)

我用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)

java swing jbutton layout-manager preferredsize

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

当前月份和年份的特定日期

我对当前月份和年份的特定日的回归有问题.我需要例如第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天进行比较.

sql t-sql sql-server datetime

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

导出到jar后没有声音

我的应用程序有问题.当我在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)

哪里可能是个错误?

java eclipse audio embedded-resource

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

选择节点,其中包含具有特定属性的后代

我有类似的结构:

<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>节点?

xpath

4
推荐指数
1
解决办法
5197
查看次数

在SQL查询中循环?

我有查询,我在哪里调用函数 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的周期.这样的事情甚至可能吗?

sql firebird cycle series

4
推荐指数
1
解决办法
1617
查看次数

函数调用缺少参数列表来创建指针

我试图通过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)

c++ qt5.2 vrpn

4
推荐指数
1
解决办法
2万
查看次数

获取月中的第一天(和最后一天) - 表达式简化

我需要在当前(和之前)月的第一天之前获得日期,即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)

我需要写一个月的最后一天.

谢谢你的帮助.

sql firebird date

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

SQL Server:语法不正确

我有这个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)

sql-server

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

SQL Server 2008 - 语法不正确

我正在编辑从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)

sql-server-2008

-1
推荐指数
1
解决办法
209
查看次数