GridBagLayout和JScrollPane:如何减少行高?

请参阅下面一个使用GridBagLayout的简单测试代码(第2行有2行,第2行,第1行有1个组件)。 虽然我已经指定第一行的weighty为0.01,第二行的weighty为1,但屏幕上的比率看起来更像是0.3和0.7。 似乎第一行的高度resize,以便整个textarea适合它。 如何减小第一行的高度,以便显示JScrollPane的滚动条? public class Test { public static void main(String… args) { String text = “text\n\n\n\n\n\n\n\ntext”; JFrame frame = new JFrame(); JTextArea area; JScrollPane pane; JPanel desktop = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); c.fill = GridBagConstraints.HORIZONTAL; c.gridx = 0; c.gridy = 0; c.weightx = 0.25; c.weighty = 0.05; area = […]

如何使用POST上传二进制数据

我的代码中有这样的东西: String boundary = “thisIsMyBoundaryString”; StringBuilder body = new StringBuilder(); … byte[] data = bos.toByteArray(); body.append(new String(data)); body.append(“\r\n–” + boundary + “–\r\n”); String entity = body.toString(); 我正在构建一个POST请求,需要插入一些二进制数据(JPEG压缩位图)。 附加byteArray后,我想追加newLine和边界字符串, 但是StringBuilder被破坏了 – 似乎来自添加边界的字节 从那时起就变得错位了 并且它们不再被解释为我的原始字符串,而是作为一些随机字符。 这是发生在这里的事吗? 我该如何解决这个问题? 也许我应该在追加边界之前在byteArray中添加一个填充字节? 将二进制数据添加到POST请求的正确方法是什么? 请注意,此处不能使用Base64编码。 [编辑] 解决方案是使用MultipartEntity来发出此类请求 并忘记手动添加边界。 这是相关的代码片段: FileBody bin = new FileBody(new File(Environment.getExternalStorageDirectory() + “/” + FILE_NAME)); MultipartEntity entity = […]

load-time-weaver(aspectj-weaver)在apache tomcat 7.0.55中不起作用

需要一些关于加载时间织布工的帮助。 我的项目已经在apache tomcat 7.0.42中工作了; 但是,每当我将tomcat版本更改为7.0.55时,我都会收到此错误 SEVERE: Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘org.springframework.context.weaving.AspectJWeavingEnabler#0’: Initialization of bean failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name ‘loadTimeWeaver’: Initialization of bean failed; nested exception is java.lang.IllegalStateException: ClassLoader [org.apache.catalina.loader.WebappClassLoader] does NOT provide an ‘addTransformer(ClassFileTransformer)’ method. Specify a custom LoadTimeWeaver or start your Java virtual […]

Gradle sync失败:对于输入字符串:“+”

我想将Firebase SDK添加到我的Android项目中。 我补充道 buildscript { dependencies { // Add this line classpath ‘com.google.gms:google-services:3.1.0’ } } 到项目级gradle文件。 然后我补充说 // Add to the bottom of the file apply plugin: ‘com.google.gms.google-services’ Gradle请求同步。 我收到以下错误: 12:35 Gradle sync failed: For input string: “+” Consult IDE log for more details (Help | Show Log) 我该如何解决这个问题? 怎么了?

如何设计可能使用skip的返回流

我创建了一个解析库,它接受提供的输入并返回记录流。 然后程序调用该库并处理结果。 就我而言,我的程序正在使用类似的东西 recordStream.forEach(r -> insertIntoDB(r)); 可以提供给解析库的输入类型之一是平面文件,其可以具有标题行。 因此,可以将解析库配置为跳过标题行。 如果配置了标题行,则会向返回添加skip(n)元素,例如 Files.lines(input)**.skip(1)**.parallel().map(r -> createRecord(r)); 解析库返回生成的Stream。 但是,似乎skip,parallel和forEach不能很好地结合在一起最终程序员必须调用forEachOrdered,但将这个要求放在程序员身上是不好的设计,期望他们知道如果处理输入类型他们必须使用forEachOrdered带有标题行的文件。 如何在返回的流链的构造中自己强制执行有序需求,以将完整function的流返回给程序编写器,而不是具有隐藏限制的流? 答案是将流包装在另一个流中吗?

即使使用cancel方法也无法取消AsyncTask中的doInBackground进程

我已经声明了FileUploadTask的实例,它在onCreate()方法中扩展了AsyncTask FileUploadTask uploadTask= null; 并通过以下代码执行后台方法 public class UploadFiles implements OnClickListener{ …. if(SOTCNetStat.chkConnectionStatus(UploadResult.this)){ uploadTask=new FileUploadTask(); uploadTask.execute(“”); } else { Toast.makeText(UploadResult.this, getResources().getString(R.string.Text_CheckNetworkConnections) , Toast.LENGTH_LONG).show(); } …. } 有取消按钮取消后台进程 cancel.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Log.d(TAG,”cancel button clicked…..”); //FileUploadTask uploadTask= new FileUploadTask(); if(uploadTask!=null) { Log.d(TAG,”click event null checking….”); uploadTask.cancel(true); } […]

使用java删除XML中的重复项的小问题

这是示例XML: 23 23 这是我写的java代码,它找到重复的元素(包括它们的属性)并删除它们: import java.io.File; import java.io.IOException; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerException; import javax.xml.transform.TransformerFactory; import javax.xml.transform.dom.DOMSource; import javax.xml.transform.stream.StreamResult; import javax.xml.xpath.XPathConstants; import javax.xml.xpath.XPathExpression; import javax.xml.xpath.XPathExpressionException; import javax.xml.xpath.XPathFactory; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; import org.xml.sax.SAXException; public class RecursiveNodeCheck { /** * @param args */ public static […]

60秒后停止异步任务

我想在60秒后停止异步任务 我知道有一个方法get(time,timeunit)我应该在doInBackground中使用,但我不知道如何检查是否已达到超时请提供该样本一行代码。 谢谢

在Jetty 8.1.12中将dirAllowed设置为false

我使用的是Jetty 6.x,我们创建了一个基于Spring的Jetty服务器,并将dirAllowed设置为false。 配置如下。 现在我升级到Jetty 8.1.12并发现initParams不适用于org.eclipse.jetty.webapp.WebAppContext.Now现在配置如下(带有dirAllowed注释掉) <!– –> 有人能告诉我如何为Jetty 8.1.12设置dirAllowed属性 我看到很少有像这样的基于代码的服务器的post 但我的服务器是基于弹簧的。 如何设置基于弹簧的配置。

CSS在春季安全

我应该将CSS添加到登录后访问它的两个页面,其中使用spring security检查数据 如何将CSS添加到受spring security保护的这两个页面? task.jsp <link rel="stylesheet" href="” type=”text/css”> <link rel="stylesheet" href="” type=”text/css”> <link rel="stylesheet" href="” type=”text/css”> <link rel="stylesheet" href="” type=”text/css”> <link rel="stylesheet" href="” type=”text/css”> <link rel="stylesheet" href="” type=”text/css”> 的dispatcherServlet.xml 弹簧security.xml文件