我正在使用 java 的默认 pop3 实现,但无法让它读取标志的实际状态(我认为)。
这是(缩写)代码:
Store store = null;
Folder folder = null;
try
{
Session mailSession = Session.getInstance(new Properties(), null);
store = mailSession.getStore("pop3");
store.connect(host, addr, pwd);
folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
for (Message msg : folder.getMessages())
{
if (msg.isSet(Flag.SEEN))
continue;
LOG.debug("processing email titled '" + msg.getSubject()
+ "' from '" + msg.getFrom()[0] + "'");
... do some stuff
msg.setFlag(Flag.SEEN, true);
}
}
finally
{
if (folder != null)
folder.close(true);
if (store != null)
store.close();
}
Run Code Online (Sandbox Code Playgroud)
问题是,每次执行上述代码时,都会处理相同的消息(所有消息),因为对的调用msg.isSet(Flag.SEEN)始终返回 false,即使我在上一次迭代中将其设置为 …
我已经完成了一些教程等,并且发现我可以在代码中实现定义所有UI组件的相同结果.
例如:
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("hello");
LinearLayout ll = new LinearLayout(this);
ll.addView(tv);
setContentView(ll);
}
Run Code Online (Sandbox Code Playgroud)
相当于
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
Run Code Online (Sandbox Code Playgroud)
+
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:text="@string/hello"/>
Run Code Online (Sandbox Code Playgroud)
为此使用XML有哪些性能/可维护性优势?
如果程序员喜欢使用基于XML的代码,还应该考虑哪些额外的考虑因素?
我想要在2行上布置3个组件,以便底部组件和右上组件使用所有可用的水平空间.
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.setLayout(new MigLayout("debug, fill"));
Container cp = frame.getContentPane();
cp.add(new JTextField("component 1"), "");
cp.add(new JTextField("component 2"), "growx,push,wrap");
cp.add(new JTextField("component 3"), "span,growx,push");
frame.pack();
frame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
考虑到上述情况,如何在调整框架大小时停止显示"组件1"和"组件2"之间的空间?

我一直在寻找,但找不到文档:
有没有办法让页面呈现没有包装HTML元素的响应,只打印在tml主体中提供的内容,或者在@BeginRender期间在MarkupWriter.write中设置的内容?
我需要一个页面来执行一些服务器端处理并返回纯javascript以供外部应用程序请求.
如果这是不可能的,是否可以将tapestry Ioc暴露给同一个应用程序中的servlet?
谢谢,p.
我遇到以下代码的问题:
<t:form t:id="locationsForm" t:zone="myZone">
<t:loop t:source="locations" t:value="location" t:encoder="locationEncoder">
<t:textfield t:value="location.name" />
<t:submit t:event="RemoveLocation" t:value="remove ${location.hashCode()}" t:context="${location.hashCode()}" />
</t:loop>
<t:submit t:value="save" />
</t:form>
Run Code Online (Sandbox Code Playgroud)
说我最终得到以下按钮:
<input type="submit" name="button" id="button" value="remove 12339020">
<input type="submit" name="button" id="button" value="remove 2504658">
Run Code Online (Sandbox Code Playgroud)
单击任一按钮将仅触发onRemoveLocation具有上下文的事件2504658.
我猜第二个提交组件覆盖了第一个提交的事件处理程序,因此它们最终都调用了第二个组件事件处理程序.
我试过设置clientId一些独特的东西,但没有帮助.
我需要删除按钮来提交相同的表单,因为用户可能会更新一个元素的名称并在同一操作中删除第二个元素.
建议表示赞赏,p.
(Tapestry 5.1.0.5)
我有一些非常古老的代码,它使用a Box来列出一些信息.我创建它是这样的:
Box patterns = Box.createVerticalBox();
Run Code Online (Sandbox Code Playgroud)
非常(非常)经常添加新项目并删除旧项目,例如:
label = new JLabel("xyz");
patterns.add(label);
Run Code Online (Sandbox Code Playgroud)
然后
patterns.remove(label);
Run Code Online (Sandbox Code Playgroud)
每当添加某些东西时,我必须重新涂抹,所以我打电话给:
patterns.revalidate();
patterns.repaint();
Run Code Online (Sandbox Code Playgroud)
问题是,因为这种情况经常发生,所以它会扼杀用户界面.我认为我需要一个更好的实现,以使其更有效.
我知道我可以保持在后台活动项目的列表,然后间歇性地更新实际UI(批量更新),但...
有人可以提出更有效的替代方法吗?
我即将开始研究一个项目,该项目将生成一些带有alpha(渐变)的PNG,并希望在java中以编程方式绘制它们.
对于(一个简单的)示例,我想绘制一个框,添加一个阴影,然后将其保存到PNG文件,然后可以将其覆盖在其他图形上.
谢谢.
我试图在PostgreSQL 9.0.1中进行稍微复杂的字符串转换.值中my_col的长字符串格式为:
'12345_sometext_X12B_1'
'12345_sometext_optionaltext_Y09B_1'
'12345_sometext_optionaltext_X12A_1'
Run Code Online (Sandbox Code Playgroud)
我需要将'X12'部分转换为已知的数值,有几个不同的已知值(最多5个).
我希望能够在一个查询中确定这一点,而不需要子查询.但是,以下内容对我不起作用.最后一列是抛出异常的那一列.CASE由于某种原因,我似乎无法使用这些函数的输出结合语句.我列出了进行中的列仅用于演示目的.
select
regexp_matches(my_col, E'^.*_([^_]*)[A-Z]{1}_\\d*$'), -- returns {'X12'}
(regexp_matches(my_col, E'^.*_([^_]*)[A-Z]{1}_\\d*$'))[1], -- returns 'X12'
case (regexp_matches(my_col, E'^.*_([^_]*)[A-Z]{1}_\\d*$'))[1]
when 'X12' then '1200'
when 'Y09' then '950'
else '?' end -- should return '1200' but throws error
from my_table;
Run Code Online (Sandbox Code Playgroud)
相反,我收到错误:
ERROR: set-valued function called in context that cannot accept a set
SQL state: 0A000
Run Code Online (Sandbox Code Playgroud)
有人可以告诉我吗?
我刚刚偶然发现了一个奇怪的场景,我想知道是否有人可以解释这种行为.
情况1:
File base = new File("");
System.out.println(base.getAbsolutePath());
System.out.println(base.isDirectory());
System.out.println(base.canRead());
Run Code Online (Sandbox Code Playgroud)
结果:
C:\workspace-sss\Commons
false
false
Run Code Online (Sandbox Code Playgroud)
案例2:
File base = new File("C:/workspace-sss/Commons");
System.out.println(base.getAbsolutePath());
System.out.println(base.isDirectory());
System.out.println(base.canRead());
Run Code Online (Sandbox Code Playgroud)
结果:
C:\workspace-sss\Commons
true
true
Run Code Online (Sandbox Code Playgroud)
如果两个File对象的绝对路径相等,为什么它们的处理方式不同?
我有几个内部库,我没有/不知道如何添加到我的本地maven存储库.我已将它们添加到项目的类路径中,但我的maven-compile失败,说明它无法在外部jar中找到类(如预期的那样):
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project proj: Compilation failure: Compilation failure:
dir\src\main\java\package\MyClass.java:[8,25] package blah does not exist
dir\src\main\java\package\MyClass.java:[9,25] package blah does not exist
dir\src\main\java\package\MyClass.java:[21,12] cannot find symbol
symbol : variable Blah
location: class package.MyClass
dir\src\main\java\package\MyClass.java:[28,9] cannot find symbol
symbol : variable Blah
location: class package.MyClass
Run Code Online (Sandbox Code Playgroud)
我怎么告诉maven一个我偷偷添加到我项目的类路径中的jar,以便它可以用它来编译?
如果客户端断开连接,是否需要提前退订?
我原本以为是,但是如果客户端意外断开连接,则无法退订..
因此,取消订阅是没有意义的,除非您仍然保持连接并且不再希望接收消息。
这是正确的假设吗?
我正在使用Point Class来管理(x,y)坐标列表,我需要按X的顺序对它们进行排序.
我在线阅读创建一个实现Comparator的新类PointCompare,但是我不确定它是如何工作的,因此我在sortByXCoordinates方法中有一个编译器错误.
非常感谢帮助,欢迎任何评论,提前感谢.这是我的一些代码:
import javax.swing.JOptionPane;
import java.awt.Point;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
//import java.util.Iterator;
public class ConvexHullMain {
private Point coordinates = new Point(0, 0);
private final int MAX_POINTS = 3;
private ArrayList<Point> coordinateList = new ArrayList<Point>();
public void inputCoordinates() {
String tempString; // temp string for JOptionPane
int tempx = 0;
int tempy = 0;
for (int i = 0; i < MAX_POINTS; i++) {
try {
// input x coordinates
tempString = JOptionPane.showInputDialog(null,
"Enter X coordinate:"); …Run Code Online (Sandbox Code Playgroud)