小编Jan*_*kis的帖子

RMI的替代品

我有一个小型的Java SE应用程序,它实际上是一个坐在数据库之上的胖客户端.为了进一步提高我的Java技能,我决定用它来创建一个客户端 - 服务器应用程序.服务器应用程序与数据库通信并处理各种冗长的操作,而客户端应用程序仅接收结果,主要是中等长度和原语的ArrayLists.

为此,我开始阅读RMI并完成了Oracle教程,我发现这个教程非常难以理解甚至开始工作.

还有什么我可以使用而不是RMI,而不必深入研究JavaEE?

java rmi

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

图表的JAVA库 - JFreeChart?

首先:我确实阅读了所有其他类似的问题,我看了一下JFreeChart,它似乎是为Java桌面应用程序生成图表的首选武器.它实际上也适合我的需求,但项目似乎已经死了.论坛已经失效,最后一次更新是在2009年.

问题是,有没有其他类似于JFreeChart的库,或者我应该使用JFreeChart,因为它太棒了,我永远不需要来自-now死官方论坛的支持?

您对此的看法将受到高度赞赏.

java jfreechart

3
推荐指数
2
解决办法
3702
查看次数

如何调整PdfPTable的大小以适应页面?

我正在生成一个文档,如下面的代码所示,除了表格的内容,这些内容各不相同.我需要做的是确保此表的大小不会超过一页,无论单元格中的内容量如何.有办法吗?

import com.itextpdf.text.Phrase;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import java.awt.Desktop;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public void createTemplate() throws DocumentException, FileNotFoundException, IOException{ String TARGET = System.getProperty("user.home")+"\temp.pdf";
Document document = new Document(PageSize.A4); PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream(TARGET)); document.open();

PdfPTable table = new PdfPTable(7); for (int i = 0; i < 105; i++) { Phrase p = new Phrase("some text"); PdfPCell cell = new PdfPCell(); cell.addElement(p); table.addCell(cell); } table.setTotalWidth(PageSize.A4.getWidth()-10); table.setLockedWidth(true); PdfContentByte canvas = …
Run Code Online (Sandbox Code Playgroud)

java itext

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

confirmDialog未呈现

我目前正在阅读JavaEE7的教程,目前的章节是JSF/PrimeFaces.我需要为删除操作添加一个确认对话框,页面渲染正常.当我按下commandButton(第14行)时,actionListener会触发,但confirm.show()会在Web控制台中产生错误:"引用错误:未定义确认"并且confirmDialog不会呈现.据我了解,"widgetVar =确认"是定义.想知道我做错了什么.

<html xmlns="http://www.w3.org/1999/xhtml"
  xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
  xmlns:f="http://xmlns.jcp.org/jsf/core"
  xmlns:h="http://xmlns.jcp.org/jsf/html"
  xmlns:p="http://primefaces.org/ui">   
<body>
    <f:view contracts="#{view.locale.language}">
        <ui:composition template="/template.xhtml">
            <ui:define name ="content">
                <h1>#{msg['listCampaigns.my_campaigns']}</h1>
                <h:form>
                    <p:dataTable value="#{campaignListProducer.campaigns}" var="campaign">
                        <p:column>
                            <p:commandButton onclick="confirmation.show()" actionListener="#{listCampaignsController.doDeleteCampaign(campaign)}" icon="ui-icon-close" />
                        </p:column>
                        <p:column>
                            <f:facet name="header">#{msg['listCampaigns.name']}</f:facet>
                            <h:outputText value="#{campaign.name}" />
                        </p:column>
                        <p:column>
                            <f:facet name="header">#{msg['listCampaigns.target_amount']}</f:facet>
                            <h:outputText value="#{campaign.targetAmount}">
                                <f:convertNumber type="currency" currencyCode="EUR" />
                            </h:outputText>
                        </p:column>
                        <p:column>
                            <f:facet name="header">#{msg['listCampaigns.donated_so_far']}</f:facet>
                            <h:outputText value="#{campaign.amountdonatedSoFar}">
                                <f:convertNumber type="currency" currencyCode="EUR" />
                            </h:outputText>
                        </p:column>
                        <p:column>
                            <p:commandLink value="#{msg['listCampaigns.edit']}" ajax="false" action="#{listCampaignsController.doEditCampaign(campaign)}">
                            </p:commandLink>
                        </p:column>
                        <p:column>
                            <p:commandLink value="#{msg['listCampaigns.list_donations']}" ajax="false" action="#{listCampaignsController.doListDonations(campaign)}">
                            </p:commandLink>
                        </p:column>
                        <p:column>
                            <p:commandLink value="#{msg['listCampaigns.form']}" ajax="false" action="#{listCampaignsController.doEditDonationForm(campaign)}">
                            </p:commandLink>
                        </p:column>                                                           
                    </p:dataTable>
                    <p:commandButton …
Run Code Online (Sandbox Code Playgroud)

jsf primefaces

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

根据另一个JComboBox的选择更改JComboBox的元素

我有一个小应用程序,通过JPA从MySQL DB生成统计图表.要选择要在统计信息中包含哪些数据库组件,我已安装了2个JComboBox.第一个JComboBox使用Category1的元素填充,第二个JComboBox使用Category2中的元素填充,Category2是Category1的子类别.我想要做的是只使用链接到JComboBox1中的选择的Category2元素填充JComboBox2.

示例:Category1是汽车品牌,Category2是型号; 我希望JComboBox2只显示所选品牌的型号,现在它显示每个品牌的每个可用型号.

java swing jcombobox

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

将java控制台附加到文件

我使用以下行将控制台输出重定向到文件:

  PrintStream stream = new PrintStream("console.log");
  System.setOut(stream);
Run Code Online (Sandbox Code Playgroud)

现在,文件被覆盖与应用程序的每次启动,从而失去了此前的所有条目,但我倒是喜欢它的每一个会话添加到持久的控制台日志文件.可能吗 ?

java

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

JMenuItem的工具提示

我将菜单添加到工具栏中,如下所示:

    JMenuBar menu = new JMenuBar();
    JMenu actions = new JMenu("Aktionen");
    Icon menuIcon = ImageUtilities.loadImageIcon("pathToIcon", true);
    actions.setIcon(menuIcon);

    // Add
    JMenuItem addItem = new JMenuItem("Add");       
    Icon addIcon = ImageUtilities.loadImageIcon("pathToIcon", true);
    addItem.setIcon(addIcon);
    addItem.setToolTipText("Add new Item");
    addItem.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            AddItemAction someAction = new AddItemAction();
            someAction.actionPerformed(new ActionEvent(this, ActionEvent.ACTION_PERFORMED, null) {
                // Foo
            });
        }
    });        

    menu.add(actions);
    actions.add(addItem);
    toolbar.addSeparator();
    toolbar.add(menu);  
Run Code Online (Sandbox Code Playgroud)

基本上,它工作正常.但是,它从不显示工具提示("添加新项").任何提示?

编辑:以防万一有相同问题的人偶然发现:这是L&F,因为我应该从一开始就怀疑.它有一个显示JMenuItems工具提示的属性; 它默认为false.

java swing tooltip jmenuitem jmenu

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

JSpinner:自动选择 onFocus

我想在用户通过我的表单中的 JTextFields 和 JSpinners 选项卡时实现自动选择。为此,我正在使用此侦听器:

public class AutoSelect implements FocusListener {

    @Override
    public void focusGained(final FocusEvent e) {
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                if (e.getSource() instanceof JTextField) {
                    try {
                        JTextField t = (JTextField) e.getComponent();
                        t.selectAll();
                    } catch (ClassCastException ex) {
                        // 
                    }
                }else if (e.getSource() instanceof JSpinner){
                    JSpinner spinner = (JSpinner)e.getComponent();
                    JTextField tf = ((JSpinner.DefaultEditor)spinner.getEditor()).getTextField();  
                    tf.selectAll();
                }
            }
        });
    }

    @Override
    public void focusLost(FocusEvent e) {
        // 
    }
}
Run Code Online (Sandbox Code Playgroud)

只有它对我的微调器不起作用。事件被触发,正确的行被执行,什么也没发生。我怀疑我没有正确使用 .getTextField()。有没有人对此有一个可行的解决方案?

java swing focus jspinner

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

如何更改 XSSFCellStyle 中的字体大小?

我使用以下方法为我的工作表定义单元格样式。然后我cell.setCellStyle(XSSFCellStyle style)用来将它们分配给不同的单元格。然而,虽然对齐方式和背景颜色分配正确,但字体大小和字体强调(粗体、常规)却没有。所有单元格都有 11 点粗体。我想知道我的错误在哪里。

private void createStyles() {
    ueberschrift = workbook.createCellStyle();
    ueberschrift.setAlignment(HorizontalAlignment.LEFT);
    ueberschrift.getFont().setFontHeightInPoints((short) 25);
    ueberschrift.getFont().setBold(true);

    header = workbook.createCellStyle();
    header.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
    header.setFillPattern(FillPatternType.SOLID_FOREGROUND);
    header.setAlignment(HorizontalAlignment.CENTER);
    header.getFont().setFontHeightInPoints((short)11);

    standard_text = workbook.createCellStyle();
    standard_text.setAlignment(HorizontalAlignment.RIGHT);
    standard_text.getFont().setFontHeightInPoints((short) 11);

    standard_int = workbook.createCellStyle();
    standard_int.setDataFormat(
            workbook.createDataFormat().getFormat("0.0"));
    standard_int.setAlignment(HorizontalAlignment.RIGHT);
    standard_int.getFont().setFontHeightInPoints((short)11);

    standard_time = workbook.createCellStyle();
    standard_time.setDataFormat(workbook.createDataFormat().getFormat("# ?/?"));
    standard_time.setAlignment(HorizontalAlignment.RIGHT);
}
Run Code Online (Sandbox Code Playgroud)

java apache-poi

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

如何使用 &lt;p:ajax listener&gt; 导航

我正在尝试以用户选择一行时加载另一个页面的方式设置 a。该行return Pages.EDIT_ITEM已执行但没有任何反应,没有异常或错误,什么也没有。我什至可以Pages.EDIT_ITEM通过输入 URL 在浏览器中访问,但不知何故,让支持 bean 打开页面不起作用。

我的数据表:

<p:dataTable id="categoriesTable" value="#{category.items}" var="item" selectionMode="single" rowKey="#{item.id}" >
   <p:commandButton id="toggler" type="button" value="Columns" style="float:right"  />
   <p:ajax event="rowSelect" listener="#{listCategoriesController.onRowDblClick}"  />      
   <p:columnToggler datasource="categoriesTable" trigger="toggler" />
   <p:column headerText="#{msg['addItem.internal_id']}" sortBy="#{item.internalId}" filterBy="#{item.internalId}" filterMatchMode="contains" >                                        
       <h:outputText value="#{item.internalId}" />
   </p:column>
</p:dataTable>
Run Code Online (Sandbox Code Playgroud)

我的支持豆:

    package de.rcwgmbh.inventory.controller;

import de.rcwgmbh.inventory.data.CategoryProducer;
import de.rcwgmbh.inventory.data.ItemProducer;
import de.rcwgmbh.inventory.model.Category;
import de.rcwgmbh.inventory.model.Item;
import de.rcwgmbh.inventory.services.ItemService;
import java.io.Serializable;
import java.util.List;
import java.util.ResourceBundle;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import javax.persistence.EntityManager;
import org.primefaces.event.SelectEvent;
import org.primefaces.event.TabChangeEvent;
import …
Run Code Online (Sandbox Code Playgroud)

navigation jsf primefaces

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

使用<p:commandButton>重定向

以下行应该保存一个新项目并重定向到另一个页面.到目前为止,它正确保存,但它没有重定向.没有错误或警告.

<p:commandButton id="savebutton" ajax="false" value="#{msg['addCategory.save']}" actionListener="#{addCategoryController.doSave()}" />
Run Code Online (Sandbox Code Playgroud)

代码背后:

 public String doSave(){       
    categoryAddEvent.fire(categoryProducer.getSelectedCategory());
    return Pages.LIST_CATEGORIES;
}
Run Code Online (Sandbox Code Playgroud)

正如我所说,第一行正确执行,第二行似乎没有做任何事情.我有什么想法可能做错了吗?

primefaces jsf-2

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