我有一个基于GWT的页面,我想使用HtmlUnit为它创建一个HTML快照.页面使用产品上的Ajax/JavaScript信息加载,因此大约1秒钟就会出现Loading ...消息,然后会显示内容.
问题是HtmlUnit似乎没有捕获信息,我得到的只是"Loading ..."范围.
下面是一个带有HtmlUnit的实验代码,我试着给它足够的时间等待加载数据,但它似乎没有改变任何东西,我仍然无法捕获GWT javascript加载的数据.
WebClient webClient = new WebClient();
webClient.setJavaScriptEnabled(true);
webClient.setThrowExceptionOnScriptError(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
WebRequest request = new WebRequest(new URL("<my_url>"));
HtmlPage page = webClient.getPage(request);
int i = webClient.waitForBackgroundJavaScript(1000);
while (i > 0)
{
i = webClient.waitForBackgroundJavaScript(1000);
if (i == 0)
{
break;
}
synchronized (page)
{
System.out.println("wait");
page.wait(500);
}
}
webClient.getAjaxController().processSynchron(page, request, false);
System.out.println(page.asXml());
Run Code Online (Sandbox Code Playgroud)
有任何想法吗...?
我只是想知道,我们通常在最后关闭流,但为什么我们不关闭System.out
PrintStream System.out.close()
?
正如我在标题中提到的,
a + = b和a = + b之间有什么区别,还有++和++ a?我有点困惑
我有一个ArrayList,我动态地添加了一些对象,我有一个JButton.运行我的程序时,ArrayList为空,JButton设置为setEnabled(false).我想在ArrayList中有2个元素时启用我的按钮,如果ArrayList有一个项目或为空,则再次禁用它.我怎样才能做到这一点?
正如标题中所描述的那样,我一直试图设置一种带有水平滚动的垂直流布局.布局中的组件将是JLabel.让我画一幅画:
+-------------------------+ <--- window
|Label1 Label4 Label7|
|Label2 Label5 Label8| <--- labels
|Label3 Label6 Label9|
|<===============>========| <--- scrollbar
+-------------------------+
Run Code Online (Sandbox Code Playgroud)
同一窗口,垂直扩展
+--------------------------+ <--- window
|Label1 Label5 Label9 |
|Label2 Label6 Label10| <--- labels
|Label3 Label7 Label11|
|Label4 Label8 Label12|
|<===================>=====| <--- scrollbar
+--------------------------+
Run Code Online (Sandbox Code Playgroud)
因此,标签将填充可用的垂直空间,然后创建一个新列.一旦可用的水平空间耗尽,就会出现水平滚动条.
通常不应出现垂直滚动条; 但是,如果窗口的垂直高度非常小,那么有一个垂直滚动条会很不错.
任何帮助是极大的赞赏.我是Java的新手,所以任何额外的解释都会很精彩.谢谢!
编辑:
根据以下回复,我现在正在使用:http: //tips4java.wordpress.com/2008/11/06/wrap-layout/ 和 http://code.google.com/p/verticalflowlayout/
我有WrapLayout扩展VerticalFlowLayout:
package LogicSim;
import java.awt.*;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
/**
* FlowLayout subclass that fully supports wrapping of components.
*/
public class VerticalWrapLayout extends VerticalFlowLayout …
Run Code Online (Sandbox Code Playgroud) 我只是想知道为什么这个编译?它是什么意思,因为它编译?
System.out.println(0xp0); // p?
Run Code Online (Sandbox Code Playgroud)
OUTPUT:
0.0
Run Code Online (Sandbox Code Playgroud) 我正在尝试学习Scala,我想通过编写一个简单的swing应用来学习,但我不确定在功能世界中GUI编程是什么样的,特别是在使用Scala时.
来自OO/Java背景的任何指针,教程或陷阱都非常受欢迎.
我想在android中替换另一个角色..我的代码:
et = (EditText) findViewById(R.id.editText1);
String str = et.getText().toString();
str.replace(' ','_');
et.setText(str);
System.out.println(str);
Run Code Online (Sandbox Code Playgroud)
但这里的"空间"并没有被"下划线"取代..我也尝试了其他角色..
请帮忙!!
我是Java的新手,我需要列出一系列列表.我可以在python中完成它,因为列表的元素可以是一个列表,因此在嵌入列表list[0]
中将引用一个列表并list[0][0]
引用嵌入列表的zeroeth元素.有没有简单的方法在java中实现这种行为?
为了将我的JFrame从左到右对齐,我使用:
setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
Run Code Online (Sandbox Code Playgroud)
但这只有在我使用JFrame的以下样式(装饰)时才有效:
public class RightToLeft {
public static void main(String []args){
javax.swing.SwingUtilities.invokeLater(new Runnable(){
public void run() {
try { UIManager.setLookAndFeel(UIManager.getCrossPlatformLookAndFeelClassName()); }
catch (Exception e) { e.printStackTrace(); }
JFrame.setDefaultLookAndFeelDecorated(true);
JFrame frame = new JFrame("??????? ???????");
frame.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT);
frame.setSize(300,300);
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setVisible(true);
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
但我希望它没有这种装饰.如何解决这个问题?
编辑:
@mre我想要一个像这样的JFrame:
EDIT2:
我真的需要修复这个问题,所以我提供500+给谁一个像这样的JFrame(使用WindowsLookAndFeel):