我想在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然后缩放"?
我希望在使用 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)
另外,要添加一个额外的因素,每次到达边缘时我都需要添加一个新的/不同的面板(时间线)-那么有没有办法找出它何时会换行?
谢谢,
我需要覆盖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) 有没有办法在运行 mongo 查询时考虑时区?我们有一个问题,因为时钟已经前进(到 BST),我们的 mongo 聚合查询没有按预期对记录进行分组。
例如,假设我有3条具有createdDate的2017-03-27 13:00:00,2017-03-28 00:30:00和2017-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) 我在使用 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"))
这当然不能编译,但正确的语法是什么?
添加分拣机后,是否可以在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)
这样可以正常工作,但是用户仍然可以单击表中的列标题,并按我要禁用的任何列进行排序.这可能吗?
我正在编写 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) 我正在实施一个拼写检查器,并想知道是否有一种简单/明显的方法可以用不同的颜色(如Red)强调某些文本.
我已经设置了所有内容并使用以下代码加下划线(也设置了文本的颜色):
private AttributeSet getAttributeSet(Color foregroundColor) {
SimpleAttributeSet attrs = new SimpleAttributeSet();
StyleConstants.setForeground(attrs, foregroundColor);
StyleConstants.setUnderline(attrs, true);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码将单词设置为蓝色,但也用蓝色加下划线.我需要能够改变下划线和厚度.有任何想法吗?
谢谢,
我正在寻找一种查询XML文件的方式,似乎XPath推荐相当多.唯一的问题是我找不到任何关于如何将其导入我的maven pom的文档.有谁知道细节?
我试图在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)
当我勾选方框时没有任何反应.关于我做错什么的任何想法?此外,是否有任何关于如何在页面首次加载时隐藏下拉列表和按钮的建议(我希望它们隐藏).
java ×7
swing ×5
jtable ×2
scala ×2
checkbox ×1
html ×1
input ×1
javascript ×1
jpanel ×1
jquery ×1
key-bindings ×1
keylistener ×1
miglayout ×1
mockito ×1
mongodb ×1
mousewheel ×1
pom.xml ×1
scroll ×1
sorting ×1
specs2 ×1
spring ×1
spring-mvc ×1
xml ×1
xpath ×1