小编pst*_*ton的帖子

获取“已看到”标志似乎不起作用

我正在使用 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,即使我在上一次迭代中将其设置为 …

java email pop3 jakarta-mail

4
推荐指数
1
解决办法
2954
查看次数

使用xml进行布局有什么好处?

我已经完成了一些教程等,并且发现我可以在代码中实现定义所有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的代码,还应该考虑哪些额外的考虑因素?

xml android android-layout

4
推荐指数
1
解决办法
3157
查看次数

mig layout - span和grow/push spacing

我想要在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"之间的空间?

空间问题的例子

java swing miglayout

3
推荐指数
1
解决办法
3689
查看次数

tapestry5页面用于呈现纯文本

我一直在寻找,但找不到文档:

有没有办法让页面呈现没有包装HTML元素的响应,只打印在tml主体中提供的内容,或者在@BeginRender期间在MarkupWriter.write中设置的内容?

我需要一个页面来执行一些服务器端处理并返回纯javascript以供外部应用程序请求.

如果这是不可能的,是否可以将tapestry Ioc暴露给同一个应用程序中的servlet?

谢谢,p.

tapestry

3
推荐指数
1
解决办法
1119
查看次数

循环提交上下文

我遇到以下代码的问题:

<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)

tapestry

3
推荐指数
1
解决办法
1841
查看次数

比Box更有效的布局

我有一些非常古老的代码,它使用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(批量更新),但...

有人可以提出更有效的替代方法吗?

java swing layout-manager

3
推荐指数
1
解决办法
212
查看次数

在java中创建alpha图像

我即将开始研究一个项目,该项目将生成一些带有alpha(渐变)的PNG,并希望在java中以编程方式绘制它们.

对于(一个简单的)示例,我想绘制一个框,添加一个阴影,然后将其保存到PNG文件,然后可以将其覆盖在其他图形上.

  1. 这可能与标准的JRE系统库有关吗?
  2. 哪些库会使这种操作变得简单?

谢谢.

java java-2d

3
推荐指数
1
解决办法
967
查看次数

CASE with regexp:"在上下文中调用的集值函数,不能接受集合"

我试图在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)

有人可以告诉我吗?

regex postgresql postgresql-9.0 set-returning-functions

3
推荐指数
1
解决办法
4111
查看次数

Java文件构造 - 为什么我得到不同的结果?

我刚刚偶然发现了一个奇怪的场景,我想知道是否有人可以解释这种行为.

情况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对象的绝对路径相等,为什么它们的处理方式不同?

java file

2
推荐指数
1
解决办法
92
查看次数

maven编译失败,因为我有一个非maven jar

我有几个内部库,我没有/不知道如何添加到我的本地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,以便它可以用它来编译?

maven

2
推荐指数
1
解决办法
4643
查看次数

姆克特(Mqtt):是否需要退订?

如果客户端断开连接,是否需要提前退订?

我原本以为是,但是如果客户端意外断开连接,则无法退订..

因此,取消订阅是没有意义的,除非您仍然保持连接并且不再希望接收消息。

这是正确的假设吗?

mqtt

2
推荐指数
1
解决办法
2418
查看次数

自动缩写JLabel

有人编写了一个JLabel(扩展名/ util/??),根据它的首选/可见大小自动缩写内容吗?

非常感激.

java swing

1
推荐指数
1
解决办法
234
查看次数

Java如何对Point对象的ArrayList进行排序

我正在使用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)

java sorting arraylist comparator

0
推荐指数
1
解决办法
2万
查看次数