小编And*_*tin的帖子

如何使用MouseListener查找网格中的特定单元格

我正在尝试创建一个由单元格组成的10 x 10网格的Java游戏.网格看起来像这样:

public class Grid extends JPanel implements MouseListener {
    public static final int GRID_SIZE = 10;

    public Grid() {
        setPreferredSize(new Dimension(300, 300));
        setLayout(new GridLayout(GRID_SIZE, GRID_SIZE));

        for (int x = 0; x < GRID_SIZE; x++)
            for (int y = 0; y < GRID_SIZE; y++)
                add(new Cell(x, y));
        addMouseListener(this);
    }

// All Mouse Listener methods are in here.
Run Code Online (Sandbox Code Playgroud)

Cell类看起来像这样:

public class Cell extends JPanel {

    public static final int CELL_SIZE = 1;
    private int xPos;
    private int yPos;

    public Cell …
Run Code Online (Sandbox Code Playgroud)

java swing jpanel grid-layout mouselistener

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

在Java中使用SQL来设置值

初学者的问题:我正在尝试使用Java处理SQL来处理SQL中的两个不同属性的元组(对于大学未评估的实用).我与四个属性有关系,包括一种咖啡的名称,当周的销售额以及咖啡的总销售额.

我试图创建的代码将使用新数字更新销售和总字段.它意味着同时使用totalSalesSales数组,添加它们,然后相应地更新关系中的两个属性.

到目前为止这是我的代码(我已经删除了所有明显/不必要的代码):

String updateTotalString = "update COFFEES set TOTAL = ? set SALES = ? where COF_NAME = ?";

String [] coffees = {"Columbian", "Earl Grey", "Kenyan", "Nescafe"};
int [] totalSales = {400,650,340,1000};
int[] sales = {50,75,100,100};

updateTotal = con.prepareStatement(updateTotalString);
    for (int i = 0; i < len; i++)
    {
        updateTotal.setInt(1, (sales[i] + totalSales[i]));
        updateTotal.setInt(2, sales[i]);
        updateTotal.setString(3, coffees[i]);
        updateTotal.executeUpdate();
    }
Run Code Online (Sandbox Code Playgroud)

不幸的是,运行它会给我一个SQL语法错误,专注于第一行(String updateTotalString).我有一种感觉,这与我试图在一行中做两组并且语法错误有关.
有人可以帮帮我吗?

java sql

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

T/SQL 查询中 end = 1 的 Case 语句

我希望有人可以向我解释以下查询,因为我不熟悉语法:

@[user1]   int,
@[user2]   varchar(10)

delete 
from [table name]
where [id] in (select [id]
            from [a diff table name]
            where [user1] = @[user1])
and (case
     when [user2] = 'some string' then 1
     when [table field] = @user2 then 1
     else 0
     end) = 1
and [other field] = 0
and [other field] = 0
and [other field]= 0
Run Code Online (Sandbox Code Playgroud)

首先,我显然已经更改了所有变量/表名称。如果有什么不清楚的,请见谅。我知道第一部分是一个删除语句,它使用 in 语句。没关系。我还得到了最后一部分,多个 AND 语句向 WHERE 子句添加了条件。

这是我正在努力解决的案例陈述。我有两个问题。

  1. else 0 有什么用?是否附加到它上面的 when 子句,以便 if [table field] 没有 = 传入的 user2 变量设置为 0? …

t-sql sql-server case

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

使用O表示法在for循环中的LinkedList上调用get()的复杂性

我有一个通用的实践,可以使用O()表示法确定一小段代码的复杂性。

代码是:

for (int i = 0; i < list.size(); i++)
    System.out.println(list.get(i));
Run Code Online (Sandbox Code Playgroud)

有问题的列表是链接列表。对于我们的实践,我们给了现成的LinkedList类,尽管我们必须编写自己的size()get()方法。

使我困惑的是在最终计算中该算什么。问题问:

如果列表中有100个元素,它将进行多少次查找?基于此,使用O()表示法计算程序的复杂度。

如果我只是在计算get()方法,它将平均进行n / 2次查找,从而导致O(n)的O表示法很大。但是,for循环的每次迭代都需要重新计算size(),这涉及到查找(以确定链接列表中有多少个节点)。

在计算此代码的复杂度时,是否应考虑到这一点?还是计算大小不算作查找?

java linked-list

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

如何让两个子类在游戏中相互通信

链接:使用MouseListener选择网格中的一系列单元格

我正在创建一个有两个网格的战舰游戏.用户将他们的船只放在一个网格上,然后炸弹另一个网格.

我有一个名为Grid的抽象类,它创建一个10x10的单元格网格(扩展JPanel类).它为每个单元格提供了一个监听器,如下所示:

public Grid() {
    setPreferredSize(new Dimension(300, 300));
    setLayout(new GridLayout(GRID_SIZE,GRID_SIZE));

    for (int x = 0; x < GRID_SIZE; x++)
        for (int y = 0; y < GRID_SIZE; y++) {
            final Cell cell = new Cell(x, y);
            cellArray[x][y] = cell;
            add(cell);
            cell.addMouseListener(new MouseListener() {
                @Override
                public void mouseClicked(MouseEvent e) {
                    mouseClick(e, cellArray);
                }

                @Override
                public void mouseEntered(MouseEvent e) {
                    mouseEnter(e, cellArray);
                }

                @Override
                public void mouseExited(MouseEvent e) {
                    mouseExit(e, cellArray);
                }

                @Override
                public void mousePressed(MouseEvent e) {
                    mousePress(e, cellArray); …
Run Code Online (Sandbox Code Playgroud)

java swing

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

允许Maven在Ubuntu中自动创建目录

我在 Ubuntu 12.04 中运行 Maven 3.0.4。我有 Java 版本 1.7.0_25。我正在尝试使用该mvn package命令,但我不断遇到错误,这些错误总是沿着以下路线:

Failure executing javac, but could not parse the error:
javac: directory not found: /......../target/[some folder]
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚这最初是什么,但现在从一些基本的谷歌搜索中了解到这是因为目标目录必须存在。处理这个问题的一般建议方法是创建一个 ant 脚本来为你做这件事(我认为)。

但是,我不知道实际需要创建哪些文件夹。这不是我正在编译的项目,只是我下载的项目。是否仍然可以使用 Ant 脚本,如果可以,任何人都可以指出我正确的方向,因为我以前从未使用过 ant 脚本,更不用说创建了一个,并且可以准确地称为 Ubuntu“菜鸟”!

根据要求提供完整的 Maven 输出

目录为:

flume-sources - containing
    flume.conf
    pom.xml
    src
      main
        java
          com
            cloudera
              flume
                source
                  TwitterSource.java
                  TwitterSourceConstants.java
Run Code Online (Sandbox Code Playgroud)

Maven 错误是:

andrew@andrew-VirtualBox:~/flume-sources$ mvn package
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building flume-sources 1.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ flume-sources --- …
Run Code Online (Sandbox Code Playgroud)

ubuntu maven

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

从Access中以编程方式打开的Excel工作表中删除受保护的视图

我有一个电子表格,我使用Access中的VBA以编程方式打开:

Set xl = CreateObject("Excel.Application")
With xl
    Call RunASCFormatting(xl, wb, strPath)
    'More code

Sub RunASCFormatting(xl As Excel.Application, wb As Excel.Workbook, strPath As String)
    With xl
        If .ProtectedViewWindows.count > 0 Then
            .ActiveProtectedViewWindow.Edit
        End If
        Set wb = .Workbooks.Open(Trim(strPath) & "ASC.xls", True, False)
        wb.Sheets(1).Rows("1:1").Delete Shift:=xlUp
        .ActiveWorkbook.SaveAs FileName:=Trim(strPath) & "ASC.xlsx" _
        , FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    End With
End Sub
Run Code Online (Sandbox Code Playgroud)

我已经添加了sub中的"If"语句,因为我希望它会删除"受保护的视图 - 由于"信任中心"中的"文件阻止"设置,不建议编辑此文件类型.我想要实现的是删除"启用编辑"按钮,因此该宏可以启用编辑并按计划运行.

目前,代码属于"Set wb"行.实现我追求的目标的正确途径是什么?

excel ms-access vba excel-vba

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

使用一个变量和无变量调用重载的存储过程

我在我的重载过程代码中有一些例子,但是只需要一组,这里有两个日志记录程序:

  PROCEDURE Log_And_Return
  IS
  BEGIN
    Handle ('when others', TRUE, FALSE);
  END Log_And_Return;

  PROCEDURE Log_And_Return(
    in_err_name   IN    VARCHAR2 := NULL
  )
  IS
  BEGIN
    Handle (in_err_name, TRUE, FALSE);
  END Log_And_Return;
Run Code Online (Sandbox Code Playgroud)

这个想法是可以从异常块调用这两个过程.根据是否提供了参数,将使用预期错误(如采用参数的过程的情况)或其他Oracle错误(如没有输入的过程的情况)调用另一个过程.

为了进一步解释我的意思,我在我的PL/SQL中使用这些,如下所示:

BEGIN
  SELECT ID
  INTO   ID
  FROM   IDTable
  WHERE  ID = id_entered_by_user;
EXCEPTION
WHEN NO_DATA_FOUND THEN
  ERR.Log_And_Return (in_err_name => 'id_not-found');
WHEN OTHERS THEN
  ERR.Log_And_Return;
END;
Run Code Online (Sandbox Code Playgroud)

因此,如果使用上面的查找找不到ID,则该过程将执行该NO_DATA_FOUND块.Handle过程最终被调用,并且使用id_not_found参数,它能够在另一个表上执行查找并向调用程序输出适当的错误消息.

如果发生另一个错误(WHEN OTHERS),则Oracle异常将返回给调用程序.

无论如何,至少那是理论.

我似乎无法让它发挥作用.当我尝试编译程序时,我被告知:

PLS-00307: too many declarations of LOG_AND_RETURN match this call.
Run Code Online (Sandbox Code Playgroud)

我为代码中使用的每个实例都得到了这个.为什么是这样?我假设它与传递没有参数的过程有关(它可能传递一个NULL或类似的东西?).我尝试用去除无输入参数的程序,以查看是否值正在反正通过(像NULL),但什么也没做.我究竟做错了什么?

oracle stored-procedures overloading

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

这个字典作业在做什么?

我正在学习Python,并试图用它来执行情绪分析.我正在通过以下链接访问在线教程:http://www.alex-hanna.com/tworkshops/lesson-6-basic-sentiment-analysis/.我把一段代码作为mapper类,其摘录如下所示:

sentimentDict = {
    'positive': {},
    'negative': {}
}

def loadSentiment():
    with open('Sentiment/positive_words.txt', 'r') as f:
        for line in f:
            sentimentDict['positive'][line.strip()] = 1

    with open('Sentiment/negative_words.txt', 'r') as f:
        for line in f:
            sentimentDict['negative'][line.strip()] = 1
Run Code Online (Sandbox Code Playgroud)

在这里,我可以看到一个新的字典创建了两个键,正面和负面,但没有值.

在此之后,打开两个文本文件,每行都被剥离并映射到字典.

但是,= 1部分是什么?为什么需要这样做(如果不是这样就可以删除?)

python mapreduce nltk sentiment-analysis

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

避免在具有多个条件的If语句中进行硬编码

我有一段PL/SQL代码看起来类似于:

IF l_order = 'Cancelled At Order Stage' OR l_order = 'Stopped at Billing Stage' THEN
    Do something
END IF;

IF l_type = 'Internal' OR l_type = 'Contracted' THEN
    Do something else
END IF;
Run Code Online (Sandbox Code Playgroud)

我想避免使用硬编码字符串,所以我认为是一个简单的数组.然而,它似乎是很多额外的代码行(创建一个类型,创建一个类型的数组,迭代该数组)只是为了做我在这里得到的.

关于该怎么做的建议是什么?我知道这是一个非常小的问题,我可能是微观优化,但我想知道什么是好的做法.

sql arrays oracle plsql

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