小编dev*_*ium的帖子

按钮ActionListener

好的,所以我做了一个简单的程序,每次点击一个按钮时都会将值加到计数器上.现在,我想添加"自动"按钮功能,以便在单击"自动"按钮时增加计数器的值.我遇到问题,因为它不会在屏幕上呈现每个计数器值,而是在循环完成时更新值.这是我的代码:

import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.concurrent.TimeUnit;
import javax.swing.JButton;
import javax.swing.JFrame;


public class Gui extends JFrame{

    private static final long serialVersionUID = 1L;

    private JButton uselesButton;

    private JButton autoButton;

    private FlowLayout layout;
    private long counter = 0;

    public Gui() {
        super("Button");
        layout = new FlowLayout(FlowLayout.CENTER);
        this.setLayout(layout);

        uselesButton = new JButton(String.format("Pressed %d times", counter));
        add(uselesButton);
        uselesButton.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                counter++;
                uselesButton.setText(String.format("Pressed %d times", counter));
            }

        });

        autoButton = new JButton("Auto");
        add(autoButton);
        autoButton.addActionListener(new ActionListener() { …
Run Code Online (Sandbox Code Playgroud)

java swing jframe jbutton actionlistener

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

简单的C#输出

所以我最近一直在玩C#,我不明白输出格式.

using System;

namespace Arrays
{
    class Program
    {
        static void Main()
        {
            Random r = new Random();

            int[] Numbers = new int[10];
            for (int i = 0; i < Numbers.Length; i++)
            {
                Numbers[i] = r.Next(101);
            }

            for (int i = 0; i < Numbers.Length; i++)
            {
                Console.WriteLine("index {0} holds number {0}", i,Numbers[i]);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

产量 码

我的预期产量是index i holds number Number[i].因此,任何人都可以解释要更改的内容,或者将我与输出格式主题上的好C#页面链接起来.我知道有两种方法可以做到这一点.

c# arrays console-output

8
推荐指数
3
解决办法
267
查看次数

Elixir Repo.insert_all/2 和唯一约束

我今天遇到了一个相当有趣的问题。我正在尝试使用 Ecto 函数实现从 CSV 文件到我的数据库的批量插入,Repo.insert_all/2但是,有一件事困扰着我。

问题是我的上下文中的以下代码:

defmodule AppName.Roles do
  def bulk_insert(array_of_maps) do
    try do 
      Repo.insert_all(Role, array_of_maps)
    rescue
      exception in Postgrex.Error ->
        _handle_exception(exception) # or whatever
    end
  end
end 
Run Code Online (Sandbox Code Playgroud)

不过就目前而言,这似乎是一个hack。因为我知道有一个内置的变更集机制可以处理独特的约束,但我不知道如何将系统的那部分包含在Repo.insert_all/3

但是由于该insert_all函数不关心变更集,所以这更加困难。

(我当然是指unique_constraint/2

我知道我可以:

  • 使用Multi执行此,但是这创造了在后台单独的查询,而不是做它作为一个大的查询

  • 使用try rescue块保留代码,但我想看看是否有更多 Elixir-y 方法来解决这个问题,因为模式匹配的哲学让它崩溃了术语。

elixir ecto phoenix-framework

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

测试Elixir/Ecto日期

我在Elixir和Phoenix测试时遇到了另一个问题.我有一个代表用户的模块,如下所示:

defmodule AppExample.Accounts.User do
  use Ecto.Schema
  import Ecto.Changeset
  alias SecuritytrailsApi.Accounts.User

  schema "users" do
    field :email, :string
    field :password, :string, virtual: true
    field :password_hash, :string
    field :last_login, :naive_datetime

    timestamps()
  end

  ...
  def registration_changeset(%User{} = user, attrs \\ %{}) do
    user
    |> changeset(attrs) # validating and castnig email
    |> validate_required([:password])
    |> put_password_hash # creates password hash from password
    |> set_default_date
  end

  defp set_default_date(chanegset) do
     case changeset do
       %Ecto.Changeset{valid?: true} ->
          put_change(changeset, :last_login, Ecto.DateTime.utc)
       _ -> changeset
     end
  end
end
Run Code Online (Sandbox Code Playgroud)

让我们说我有一个帐户上下文,负责创建新帐户.像这样: …

unit-testing elixir ecto phoenix-framework

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