我知道SLF4J存在一个常见问题:类路径包含多个SLF4J绑定。
SLF4J: Found binding in [jar:file:/C:/Users/<name>/.gradle/caches/4.9/generated-gradle-jars/gradle-api-4.9.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/Users/<name>/.gradle/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j-impl/2.2/afd596adf5086b4f4746254b25a3a4b513f1d6e4/log4j-slf4j-impl-2.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
Run Code Online (Sandbox Code Playgroud)
我在运行gradle build时应用了gradle-plugin插件,例如class with
import org.gradle.api.*
class CommonTestPlugin implements Plugin<Project> {
Run Code Online (Sandbox Code Playgroud)
并在摇篮中
apply plugin: 'java-gradle-plugin'
Run Code Online (Sandbox Code Playgroud)
我正在使用该插件,因此可以添加代码来创建插件。
上面的错误似乎指向gradle-api作为有问题的依赖关系,但是当我用dependencyInsight --dependency gradle-api启动依赖关系见解任务时
它返回:
No dependencies matching given input were found in configuration ':compileClasspath'
Run Code Online (Sandbox Code Playgroud)
我的问题是:如何确定如何定义/排除插件正在使用的依赖关系?我正在使用以下内容,我只是想不出如何将其应用于plugin-api
compile (group: 'com.aestasit.infrastructure.sshoogr', name: 'sshoogr', version: '0.9.26'){
// exclude this to stop warnings about multiple SLF4J bindings.
exclude group: 'ch.qos.logback', module: 'logback-classic'
}
Run Code Online (Sandbox Code Playgroud) 我在JFormattedTextField中遇到掩码时遇到问题
我知道它用空格替换无效字符,或者用setPlaceholderCharacter定义的任何东西,但我需要它做的是允许删除或退格,并且不插入空格代替我删除的字符,只要其余的掩码中允许使用string.
例如,使用mask : *#*****,字符串"12 abc"有效.
如果你把光标放在b和c字符之间,然后按退格按钮,我需要它来删除b,导致"12 ac".相反,它删除它,并添加一个空格,成为:"12 a c".
下面是一个简单的代码示例来演示.
我很感激任何想法或例子来解决这个问题.
public class testFrame extends javax.swing.JFrame {
public testFrame() {
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
getContentPane().setLayout(new java.awt.FlowLayout());
setMinimumSize(new Dimension(300,150));
java.awt.Button closeButton = new java.awt.Button();
JFormattedTextField maskTextField = new JFormattedTextField();
maskTextField.setMinimumSize(new Dimension(100,30));
getContentPane().add(maskTextField);
closeButton.setLabel("close");
closeButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);
}
});
getContentPane().add(closeButton);
try {
MaskFormatter someMask = new MaskFormatter("*#****");
DefaultFormatterFactory formatterFactory
= new DefaultFormatterFactory(someMask);
maskTextField.setFormatterFactory(formatterFactory);
} catch (ParseException ex) {
ex.printStackTrace();
}
maskTextField.setText("12 …Run Code Online (Sandbox Code Playgroud) 如何仅为一个组件更改工具提示的颜色?
我知道您可以执行以下操作来更改工具提示颜色:
UIManager.put("ToolTip.background", new ColorUIResource(255, 247, 200));
Run Code Online (Sandbox Code Playgroud)
但这会改变所有组件的工具提示背景,而不仅仅是一个.
任何简单的解决方
我有一个jDialog,其中包含一些需要集中注意力的字段.
我看到一些奇怪的行为,有时聚焦失败,如果你点击Tab键,你可以在下面的底层父窗口中看到焦点变化,所以很明显焦点没有被转移.
我在关注焦点时阅读了有趣的文章(由camickr撰写):http://tips4java.wordpress.com/2010/03/14/dialog-focus/ 但这并没有解决问题.
但是,使用该侦听器,我可以轻松地添加调试以尝试查看正在发生的事情......
public class RequestFocusListener implements AncestorListener
{
private boolean removeListener;
protected static org.slf4j.Logger logger = LoggerFactory.getLogger(RequestFocusListener.class);
/*
* Convenience constructor. The listener is only used once and then it is
* removed from the component.
*/
public RequestFocusListener() {
this(true);
}
/*
* Constructor that controls whether this listen can be used once or
* multiple times.
*
* @param removeListener when true this listener is only invoked once
* otherwise it can be …Run Code Online (Sandbox Code Playgroud) Pattern.matches("123 $ 45","123 $ 45")返回false,我推测是因为特殊的$ char.
我怀疑逃避$会让它通过
例如Pattern.matches("123\$ 45","123\$ 45")
但这也失败了.
确保它们匹配的正确方法是什么?