小编mal*_*ney的帖子

覆盖Swing中的MouseWheelListener

我想在Swing中覆盖鼠标滚轮监听器,但只有在按下控制按钮的情况下.监听器将附加到JPanel,这样当它们滚动滚轮时,它将滚动JScrollPane,当它们按下控制按钮并滚动滚轮时,它将放大.在我覆盖它之前,JScrollPane的默认滚动(显然)工作和我自己的听众 这是我的代码:

mainPanel.addMouseWheelListener(new MouseWheelListener(){
    @Override
    public void mouseWheelMoved(MouseWheelEvent e) {
        if ((e.getModifiers() & InputEvent.CTRL_MASK) == InputEvent.CTRL_MASK) {
            int notches = e.getWheelRotation();

            if (notches < 0) {
                redrawOnZoom(true);
            } else {
                redrawOnZoom(false);
            }
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

有没有办法说"如果鼠标自己滚动然后执行默认的JScrollPane滚动行为,但如果按下Ctrl然后缩放"?

java swing scroll mousewheel

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

使用 MigLayout 自动包装

我希望在使用 MigLayout 到达屏幕的“边缘”时包装 JPanel。目前我有一个 JScrollPane(我只想启用它)。JScrollPane 包含任意数量的水平排列的 JPanel - 当添加面板时,jpanel 会脱离边缘,我希望它添加到下一行。这可能吗?

这是代码:

public void setupPanels(){
    JScrollPane scrollPane = new JScrollPane();
    JPanel mainPanel = new JPanel(new MigLayout("insets 2"));

    for (Object object : objects){
        JPanel subPanel = new JPanel(new MigLayout("insets 0")); 
        mainPanel.add(subPanel, "alignx left, gapx 2px 5px, gapy 2px 2px, top");
    }

    scrollPane.setViewportView(mainPanel);
}
Run Code Online (Sandbox Code Playgroud)

另外,要添加一个额外的因素,每次到达边缘时我都需要添加一个新的/不同的面板(时间线)-那么有没有办法找出它何时会换行?

谢谢,

java swing jpanel miglayout layout-manager

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

禁用Enter键以在JTable中向下移动一行

我需要覆盖JTable上的回车键功能.目前,默认行为是当用户按下"Enter"键时将行选择向下移动一行.我想禁用它,让它根据他们的选择做一些不同的事情.问题是它似乎在进入我的keylistener进入行选择之前向下移动 - 因此打开另一个窗口,选择了错误的行.

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

public class MyJTable extends JTable {


   public MyJTable(){
        setRowSelectionAllowed(true);
        addListeners()
    }

    public void addListeners(){

         addKeyListener(new KeyListener() {
                @Override
                public void keyTyped(KeyEvent e) {}

                @Override
                public void keyPressed(KeyEvent e) {}

                @Override
                public void keyReleased(KeyEvent e) {
                    int key = e.getKeyCode();
                    if (key == KeyEvent.VK_ENTER) {

                        openChannel();
                    }
                }
           });
    }

    public void openChannel(){
            for (int selectedRow : getSelectedRows()){
                //Code to open channel based on row selected
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

java swing jtable keylistener key-bindings

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

Mongo 时区聚合

有没有办法在运行 mongo 查询时考虑时区?我们有一个问题,因为时钟已经前进(到 BST),我们的 mongo 聚合查询没有按预期对记录进行分组。

例如,假设我有3条具有createdDate2017-03-27 13:00:002017-03-28 00:30:002017-03-28 13:00:00我期望的聚集,1组记录27/3和2记录28/3。但是,因为第二条记录以 UTC2017-03-27 23:30:00格式存储在数据库中,作为聚合组 27/3 的 2 条记录和 28/3 的仅 1 条记录。

这是聚合查询:

{ "$match" : { "$and" : [ 
    { "createdDate" : { "$gte" : { "$date" : {ISODATE}} , 
                        "$lte" : { "$date" : {ISODATE}}}
]}},
{ "$group" : { "_id" : { "_id" : "$id" , 
    "createdDate" : { 
       "year" : { "$year" : "$createdDate"} , 
       "month" : { …
Run Code Online (Sandbox Code Playgroud)

scala mongodb mongodb-query

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

模拟未来或在 Scala 规范中

我在使用 Mockito 模拟来自返回 anObject或 an的方法的响应时遇到了麻烦Exception。模拟方法的签名如下所示:

def findResult(request: String): Future[Seq[String] Or MyException] =

在我的规格中,我试图返回一个成功的Future

when(client.findResult("1234")) thenReturn Future.successful[Seq[String] Or MyException](Seq("Hello"))

这当然不能编译,但正确的语法是什么?

scala mockito specs2

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

禁用JTable上的列标题排序

添加分拣机后,是否可以在JTable上禁用手动排序?所以我有一个JTable,它附加了以下分类器(基本上在初始化表时按列3排序):

JTable jTable = new JTable();
RowSorter<TableModel> sorter = new TableRowSorter<TableModel>(jTable.getModel());
List<RowSorter.SortKey> sortKeys = new ArrayList<RowSorter.SortKey>();
sortKeys.add(new RowSorter.SortKey(3, SortOrder.DESCENDING));
sorter.setSortKeys(sortKeys); 
jTable.setRowSorter(sorter);
Run Code Online (Sandbox Code Playgroud)

这样可以正常工作,但是用户仍然可以单击表中的列标题,并按我要禁用的任何列进行排序.这可能吗?

java sorting swing jtable

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

使用 MockMVC 测试注入

我正在编写 Spring MVC 集成测试,想要模拟嵌入在类结构中的外部服务。但是,我似乎无法让模拟工作。

这是我的班级结构:

控制器:

@RestController
public class Controller {

    private final MyService service;

    @Autowired
    public Controller(MyService service) {
        this.service = service;
    }

    @RequestMapping(value = "/send", method = POST, produces = APPLICATION_JSON_VALUE)
    public void send(@RequestBody Response response) {
        service.sendNotification(response);
    }
}
Run Code Online (Sandbox Code Playgroud)

服务:

@Service
public class MyService {

    // Client is external service to be mocked
    private final Client client;
    private final Factory factory;

    @Autowired
    public MyService(Client client, Factory factory) {
        this.factory = factory;
        this.client = client;
    }

    public void …
Run Code Online (Sandbox Code Playgroud)

java spring spring-mvc

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

使用AttributeSet为StyleConstant添加不同颜色的下划线

我正在实施一个拼写检查器,并想知道是否有一种简单/明显的方法可以用不同的颜色(如Red)强调某些文本.

我已经设置了所有内容并使用以下代码加下划线(也设置了文本的颜色):

private AttributeSet getAttributeSet(Color foregroundColor) {
    SimpleAttributeSet attrs = new SimpleAttributeSet();
    StyleConstants.setForeground(attrs, foregroundColor);
    StyleConstants.setUnderline(attrs, true);
}
Run Code Online (Sandbox Code Playgroud)

上面的代码将单词设置为蓝色,但也用蓝色加下划线.我需要能够改变下划线和厚度.有任何想法吗?

谢谢,

java swing jtextcomponent

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

XPath for Maven POM

我正在寻找一种查询XML文件的方式,似乎XPath推荐相当多.唯一的问题是我找不到任何关于如何将其导入我的maven pom的文档.有谁知道细节?

java xml xpath pom.xml

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

根据HTML和JQuery中的复选框显示/隐藏下拉列表和按钮

我试图在HTML中显示/隐藏下拉列表和按钮,但在尝试使其工作时遇到问题.这是HTML设置:

<td valign="top">
    <INPUT TYPE="CHECKBOX" NAME="switchBox" onClick="showHideForm(this,'extra')"> 
</td>
<div id="extra">
   <td valign="top"><form:select path="uSelectedSystemId" id="uSelectedSystemId"></form:select> </td>
   <td valign="top"><button type="button" id="fUndelete">Undelete</button</td>
</div>
Run Code Online (Sandbox Code Playgroud)

这是功能:

function showHideForm(box, id) {
    var elm = document.getElementById(id);
    elm.style.display = box.checked ? $('#uSelectedSystemId').hide() : $('#uSelectedSystemId').show();
    elm.style.display = box.checked ? $('#fUndelete').hide() : $('#fUndelete').show();
}
Run Code Online (Sandbox Code Playgroud)

当我勾选方框时没有任何反应.关于我做错什么的任何想法?此外,是否有任何关于如何在页面首次加载时隐藏下拉列表和按钮的建议(我希望它们隐藏).

html javascript checkbox jquery input

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