【初心者】Java質問・相談スレッド118【歓迎】
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2008/08/10(日) 18:21:51JavaScript, Ajaxの質問は、ここでは受け付けていません。
Web製作管理 http://pc11.2ch.net/hp/
Webプログラミング http://pc11.2ch.net/php/
をご利用下さい。
よくある質問
・「コマンドまたはファイル名が違います」
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
「Exception in thread "main" java.lang.NoClassDefFoundError: 」
http://www.wikiroom.com/java/?path,classpath
・String に == は使うな。equals() を使え。
・「\12288 は不正な文字です。」
文字リテラル以外で全角スペースは使えません。半角スペースに。
・その他の質問→「APIのjavadoc見ろ」
前スレッド
【初心者】Java質問・相談スレッド116【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1213347130/
次スレは>>990あたりで。
過去ログ、関連スレッド、よくある質問とその回答など、
質問をする前に、貴方が見なければならないサイトについての情報は、
下のwikiのページにまとめてあります。
http://www.wikiroom.com/java/
0002デフォルトの名無しさん
2008/08/10(日) 18:22:34■ AWT と Swing は --
Java低速GUI Swing 7
ttp://pc11.2ch.net/test/read.cgi/tech/1204155623/l50
■ SWT は --
Java 高速GUI SWT 3
ttp://pc11.2ch.net/test/read.cgi/tech/1164877399/l50
■ NTT DoCoMo の iモード携帯電話用 Java (iアプリ) は --
iモード携帯電話用Java(iアプリ) Part18
ttp://pc11.2ch.net/test/read.cgi/tech/1214192372/l50
■ DoCoMo 以外は --
CLDC+MIDP+携帯電話用Javaスレッド part 8
ttp://pc11.2ch.net/test/read.cgi/tech/1206017034/l50
■ 課題・宿題は --
★★ Java の宿題ここで答えます Part 65 ★★
ttp://pc11.2ch.net/test/read.cgi/tech/1212085079/l50
**** 開発環境が必要の場合は ****
■ J2SE 1.4.0
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/index.html
■ J2SE 5.0 (1.5.0)
ttp://java.sun.com/j2se/1.5.0/ja/
■ Java SE 6
ttp://java.sun.com/javase/ja/6/
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
ttp://www.java.com/ja/
0003デフォルトの名無しさん
2008/08/10(日) 18:23:110004デフォルトの名無しさん
2008/08/10(日) 18:25:29マジでゴメン
0005デフォルトの名無しさん
2008/08/10(日) 18:57:34同期に失敗したか・・・・・
0006デフォルトの名無しさん
2008/08/11(月) 02:00:42プロパティファイルを読み込んでくれるファイル位置と優先順序はどうなっているんでしょうか?
warパッケージやearパッケージの際にパッケージにプロパティファイルを含めずあとで入れ替えられるようにするにはどうすればいいんでしょうか
0007デフォルトの名無しさん
2008/08/11(月) 07:17:122. 入れ替える必要があるならば最初から外部ファイルにする
0008デフォルトの名無しさん
2008/08/11(月) 10:23:540009デフォルトの名無しさん
2008/08/11(月) 10:36:14class Parent {
public synchronized void method(){
}
}
class Child extends Parent{
public void method(){
// ここが同期されるか
}
}
0010デフォルトの名無しさん
2008/08/11(月) 10:37:240011デフォルトの名無しさん
2008/08/11(月) 11:14:25ListAは以下のようになっています。
public abstract ListA<E extends ClassA> implements List<E> { ... }
ClassAにはそのクラスが扱うデータの名前を返すabstractメソッドがあります。
public abstract String getObjectName();
このメソッドが返す値は静的な値ですがstaticメソッドはabstractに出来ないので、
普通のクラスメソッドになっています。
public class ClassB extends ClassA {
...
public String getObjectName () { return "obj b"; }
}
ClassAとListAの具象クラスは常にペアで使われます。
public class ListB extends ListA<ClassB> { ... }
ここで質問なんですが、ListAの内部でもClassAのgetObjectName()で返される値を
使いたいのですが、今はListAでも同じ名前のabstractメソッドgetObjectNameを定義し、
ListBで全く同じ値を返すように実装しています。
public class ListB extends ListA<ClassB> {
....
public String getObjectName () { return "obj b"; }
}
同じメソッドを2箇所で定義しなきゃいけないのがなんとなく気持ち悪いです。
誰かもっと綺麗なやり方を教えてくれませんか?
0012デフォルトの名無しさん
2008/08/11(月) 11:22:53知ることができるわけですが、これをエラーコードという形で
取得することはできないでしょうか。
やりたいことは、xxxの例外だったら、zzzの作業を実行したいという感じです。
0013デフォルトの名無しさん
2008/08/11(月) 11:31:00クラスパスの順で探すから、クラスパスを何とかすれば何とかなるんじゃないかね。
>>12
IOExceptionのサブクラスが定義してあるものじゃないと区別できないと思う。
0014デフォルトの名無しさん
2008/08/11(月) 12:06:50たかだか文字列の取得なら、リストも中身も、継承つかわずに、
objectTypeをフィールドにして、基底クラス(Aのほう)が持つべき。
(振る舞いの違いがそこだけなら、完全に無駄な継承)
その際、リストと中身が類似じフィールドを持つのは、
要件によっては仕方ない。
フィールドの決定(生成時or登録時)がバラバラにならないように留意する。
階層がもっと増えて、リストなのか、中身なのかを意識せずに
アクセスしたいなら、getObjectName()をインタフェとして切り出す。
(コンポジットパターン。実装が簡潔になるわけではない)
>>12
IOEが出た段階で遡って区別するのは、だいたい無理じゃね?
001511
2008/08/11(月) 12:46:46基底クラスでprotected String objectName; と定義しても、
public class ClassB extends ClassA {
public String getObjectName () { return "obj b"; }
}
public class ListB extends ListA<ClassB> {
public String getObjectName () { return "obj b"; }
}
が
public class ClassB extends ClassA {
public ClassB () { objectName = "obj b"; }
}
public class ListB extends ListA<ClassB> {
public ListB () { objectName = "obj b"; }
}
になるだけで、大した違いはないように思えます。
振る舞いの違いはそれ以外にも沢山あるので継承は必須です。
> その際、リストと中身が類似じフィールドを持つのは、
> 要件によっては仕方ない。
が答えって事ですかね。
0016デフォルトの名無しさん
2008/08/11(月) 13:54:49定番というか一般的に人気のある本などを教えて頂けませんか?
レベルや用途別に分けて貰えると尚助かります。
0017デフォルトの名無しさん
2008/08/11(月) 14:08:23http://pc11.2ch.net/test/read.cgi/tech/1190032149/
0018デフォルトの名無しさん
2008/08/11(月) 14:36:56ホームページは簡潔にまとまってるから十分だし、本は要らないじゃないの。
0019デフォルトの名無しさん
2008/08/11(月) 14:45:12書いているのですが、java.io.EOFExceptionでループを抜けてしまいます。
読み込みに使っているのは、ObjectInputStreamのreadObjectで、
この戻り値がnullであるときにループを抜けたいのですが、
先の例外が出て、希望どおりになりません。
どうしたらよいでしょうか。
0020デフォルトの名無しさん
2008/08/11(月) 14:50:48そうでなければnullは戻りません
0021デフォルトの名無しさん
2008/08/11(月) 15:10:040022デフォルトの名無しさん
2008/08/11(月) 15:10:26writeObjectのnull書き込みが、終了の目印になっているようですね。
無事うまくいきました。ありがとうございます。
0023デフォルトの名無しさん
2008/08/11(月) 15:38:28getObjectNameという名前をつけていながら実体はgetSubClassNameなんだな。
Listのほうはjavaのジェネリックはerasureだからうまい方法はないね。
ジェネリックではなく実際の型かObjectが必要になる。
多態性は魅力的だろうけどセオリーとは反対に、
クラスの属性で分類してcase文並べるほうがシンプルになるケースもあるから
ある手法で手詰まりなら別の手段をあたってみるのもいいと思うよ。
002414
2008/08/11(月) 16:26:09んっと、提示されたAとBのgetメソッドの違いは、
「振る舞いの違い(=継承で書き換えるべきもの)」
ではないということを言いたかった。
プロパティとして持たせてあげれば、Bのgetメソッドはいらない。
そのプロパティを設定するのは、静的ならコンストラクタ内になる。
まあ、一番キミが聞きたいとこからはずれてるので、気にしなくていいが、
class A {
private String ob="obj a"; //デフォルト
public String getObjectName(){ //ゲッタ
return ob;
}
protected void setObjectName(String name){//セッタ
this.ob=name;
} }
class B extend A{
B(){
super();
setObjectName("obj b"); //静的ならここ書く。
} }
今回はどうせBを作る需要があるということなので、こんな感じ。
ただgetObjectName()の戻りを変えたいだけなら、setObjectNameを
公開するか、コンストラクタ引数にする。それだけのためのクラスは不要。
002511
2008/08/11(月) 18:29:07解説どうも。
なぜabstractメソッドにしたかというと、子クラスを実装する開発者にobjectNameを
セットするのを強制させたかったからです。
もちろんabstractメソッドを使わずに、親クラスでobjectNameをチェックしてnullだったら
RuntimeExceptionを投げるとかでもいいんですが。
Listの件、うまい方法はないってのは了解です。
0026デフォルトの名無しさん
2008/08/11(月) 20:36:38自分で実装するしかないのでしょうか?
0027デフォルトの名無しさん
2008/08/11(月) 21:23:42http://localhost:8080/test/index.jsfから、
テキストボックスに、"root"と入力して、ボタンを押したら、
result.jspで、"こんにちわ、rootさん!"と表示されて、
テキストボックスに、"root"以外の文字列を入力して、ボタンを押したら、
index.jspで、"文字を入力してください。"と表示したいです。
・構成は、下記配置です。
/test/build/classes/jp/co/pkg/Interface.class
/test/build/classes/jp/co/pkg/Test.class
/test/WebContent/WEB-INF/lib/jsf-api.jar
/test/WebContent/WEB-INF/lib/jsf-impl.jar
/test/WebContent/WEB-INF/lib/jstl-1.2.jar
/test/WebContent/WEB-INF/faces-config.xml
/test/WebContent/WEB-INF/web.xml
/test/WebContent/WEB-INF/index.jsp
/test/WebContent/WEB-INF/result.jsp
0028デフォルトの名無しさん
2008/08/11(月) 21:23:52すみません。自己解決です。
0029デフォルトの名無しさん
2008/08/11(月) 21:24:19<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<div>
<f:view>
<h:form>
<h:outputText value="お名前は?" binding="#{Test.text}" /><br />
<h:inputText binding="#{Test.field}" /><br />
<h:commandButton binding="#{Test.button}" action="#{Test.getButton_action}" />
</h:form>
</f:view>
</div>
</body>
</html>
0030デフォルトの名無しさん
2008/08/11(月) 21:24:53<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title></title>
</head>
<body>
<div>
<f:view>
<h:form>
<h:outputText value="#{Test.text}" />
</h:form>
</f:view>
</div>
</body>
</html>
0031デフォルトの名無しさん
2008/08/11(月) 21:27:13package jp.co.pkg;
import javax.faces.component.html.HtmlCommandButton;
import javax.faces.component.html.HtmlOutputText;
import javax.faces.component.html.HtmlInputText;
import jp.co.pkg.Interface;
public class Test implements Interface {
private HtmlCommandButton button;
private HtmlOutputText text;
private HtmlInputText field;
public void setButton(HtmlCommandButton button){
button.setValue(login_button);
this.button = button;
}
public void setText(HtmlOutputText text){ this.text = text; }
public void setField(HtmlInputText field){ this.field = field; }
public HtmlCommandButton getButton(){ return this.button; }
public HtmlOutputText getText(){ return this.text; }
public HtmlInputText getField(){ return this.field; }
public String getButton_action(){
String str = (String)this.field.getValue();
if(str.equals("root")){
text.setValue("こんにちわ、" + str + "さん!");
return "true";
}else{
text.setValue("文字を入力してください。");
return "false";
}
}
}
0032デフォルトの名無しさん
2008/08/11(月) 21:27:47package jp.co.pkg;
public interface Interface {
public static final String login_button = "ログイン";
}
0033デフォルトの名無しさん
2008/08/11(月) 21:31:05<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
version="1.2">
<managed-bean>
<managed-bean-name>Test</managed-bean-name>
<managed-bean-class>jp.co.root.Test</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>./index.jsp</from-view-id>
<navigation-case>
<from-outcome>true</from-outcome>
<to-view-id>./result.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>false</from-outcome>
<to-view-id>./index.jsp</to-view-id>
</navigation-case>
</navigation-rule>
</faces-config>
0034デフォルトの名無しさん
2008/08/11(月) 21:32:17<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>test</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
</web-app>
0035デフォルトの名無しさん
2008/08/11(月) 21:34:040036デフォルトの名無しさん
2008/08/11(月) 23:06:230037デフォルトの名無しさん
2008/08/11(月) 23:07:08ということはできるでしょうか?
グラフをX-Window上に描画・表示するソフトはroot(C++ソース)というものです。
http://www-jlc.kek.jp/subg/offl/lib/docs/rootstarter/main.html
0038デフォルトの名無しさん
2008/08/11(月) 23:56:59入力が数字の場合と文字の場合とで処理を分けたいのですがそういう関数ってありますか?
0039デフォルトの名無しさん
2008/08/12(火) 00:07:320040デフォルトの名無しさん
2008/08/12(火) 00:12:51ありがとうございます
0041デフォルトの名無しさん
2008/08/12(火) 00:59:00swing が軽量コンポーネントと呼ばれますが
swing は awt を継承している(包括している)と思うのですが・・・
何が軽量なのでしょうか
0042デフォルトの名無しさん
2008/08/12(火) 01:27:010043デフォルトの名無しさん
2008/08/12(火) 01:52:49Swingの解説を読めばまっさきに書いてあると思うんだが……。
0044デフォルトの名無しさん
2008/08/12(火) 02:13:46処理の重さや、継承によるコード量とかじゃない
描画はネイティブじゃないぶんだけ遅い
0045デフォルトの名無しさん
2008/08/12(火) 02:18:020046デフォルトの名無しさん
2008/08/12(火) 02:33:250047デフォルトの名無しさん
2008/08/12(火) 02:42:22ほらほら、お呼びだぞww
0048デフォルトの名無しさん
2008/08/12(火) 09:23:380049デフォルトの名無しさん
2008/08/12(火) 09:40:050050デフォルトの名無しさん
2008/08/12(火) 09:42:330051デフォルトの名無しさん
2008/08/12(火) 10:07:200052デフォルトの名無しさん
2008/08/12(火) 10:34:47・JDK1.2以降のAPIが使えない(java.util.jarやjavax.*が使えない)
・applet格納jarとは別の.auファイルをまとめたjarなりzipなりがある
・アーカイブは後付で読み込む(起動後に読み込むものが決まる)
という状態で、外部アーカイブ内の.auファイルから音声オブジェクトを作成する方法ってありますでしょうか?
自分で考えた限りでは2通りのアプローチかなと思ったのですが他に何かいい方法があるかなと思いまして…
1)読み込んだアーカイブをclasspathに追加する
classpathに追加できればApplet#getAudioClip(URL)で読み込めるが、追加方法がわからない
(System.setProperty()でjava.class.pathをsetしても意味がないらしい)
2)sun.audio.AudioStreamを使う
ZipInputStream→ZipEntry→byte[]→ByteArrayInputStream→AudioStreamで
読み込み&再生には成功したが非公開APIなので互換性の心配がある
0053デフォルトの名無しさん
2008/08/12(火) 11:01:0144は「遅い」って書いてあるように俺には読めるんだが
0054デフォルトの名無しさん
2008/08/12(火) 11:42:20System.out.format("%3s_", "あ");
結果: あ_ ※スペースが前に2つ入ってしまう。これを1つにしたい。
数値微分、数値積分だったらできる。
差分法、区分求積法、リーマン積分、台形公式、シンプソンの三分の一則、ロンバーグ積分でググれ。
というか数値計算や数値解析の本読め。
ただし連続関数の微分、積分は一筋縄ではいかない。
正規表現が必要になってくる。
0056デフォルトの名無しさん
2008/08/12(火) 12:32:17なにいってんだこいつは。
0057デフォルトの名無しさん
2008/08/12(火) 13:00:45そこに書いてないようだけど、数値微分はどうやるの?
0058デフォルトの名無しさん
2008/08/12(火) 13:26:14プログラム内でPDFを作成して添付ファイルとして送りたいのですが、
作成したPDFをファイルシステムに保存したくありません。
今はこんな感じでやってます。
//PDFファイルを一時ファイルとして書き出し
File tmpFile = File.createTempFile("foo", ".pdf");
//PDFをOutputStreamに書き出す独自クラス
report.renderPDF(new FileOutputStream(tmpFile));
MimeBodyPart attachedPart = new MimeBodyPart();
attachedPart.setFileName("filename.pdf");
attachedPart.setDataHandler(new DataHandler(new FileDataSource(tmpFile)));
File.createTempFile を使わずに添付ファイルを送るいい方法はありますか?
0059デフォルトの名無しさん
2008/08/12(火) 13:29:550060デフォルトの名無しさん
2008/08/12(火) 13:35:250061デフォルトの名無しさん
2008/08/12(火) 13:38:22FileOutputStreamの代わりにByteArrayOutputStream使って
FileDataSourceの代わりにDataSourceの自前の実装を使えばいいんじゃない
0062デフォルトの名無しさん
2008/08/12(火) 13:53:35Cならreturnで戻せるのですが・・・
0064デフォルトの名無しさん
2008/08/12(火) 14:12:11System#exit(int)
0065デフォルトの名無しさん
2008/08/12(火) 14:15:48thx
0066デフォルトの名無しさん
2008/08/12(火) 14:36:14半角数字、アルファベット大文字、小文字が混在していることを
条件にする方法がわかりません。
0067デフォルトの名無しさん
2008/08/12(火) 15:07:12無理に正規表現にするのはどうかと思うが・・・これでどう
(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])
006866
2008/08/12(火) 15:39:38String str = "Hoge0123";
System.out.println(str.matches("(?=.*[0-9])(?=.*[A-Z])(?=.*[a-z])"));
falseになります。
0069デフォルトの名無しさん
2008/08/12(火) 15:56:47クラスの中にprivate finalをたくさん定義するのはよい方法なのでしょか。
C言語では、ヘッダーファイルに定数をまとめたりしますが、
javaではどうなのでしょうか。
0070デフォルトの名無しさん
2008/08/12(火) 16:00:23それだけだとゼロ文字にしかマッチしない
(?= ) は1文字も食わないから
0071デフォルトの名無しさん
2008/08/12(火) 16:02:20よい方法
少なくともコード中にマジックナンバを書くよりは
用途によってはenumを使え
0072デフォルトの名無しさん
2008/08/12(火) 16:19:23レスありがとうございます。
ただ、あまりにも定数が増えてくるといいますか、
どこまで定数として定義したらよいかの判断が難しいです。
たとえば、"ファイルの読み込みに失敗しました。"という文字列が
コード上で一回しか出てこないのなら、定数にする必要もないのかなと思います。
0073デフォルトの名無しさん
2008/08/12(火) 16:28:58文字列は国際化を考えてResourceBundleに入れるのが望ましい・・・けどまぁ面倒いよな
お好きにどうぞ
0074デフォルトの名無しさん
2008/08/12(火) 16:57:37入門編の地雷じゃないヤツを教えて。
0075デフォルトの名無しさん
2008/08/12(火) 18:40:37sin(x)をcos(x)に
log(x^2)を2x/x^2 = 2/x
と表示するにはなにかしら正規表現が必要
>>57
差分法と書いてあるだろう
>>74
地雷? 意味がわからない。
まずは数値計算の本を読め。
『Javaによるアルゴリズム事典』でも読め。
0076デフォルトの名無しさん
2008/08/12(火) 20:06:50正規表現って何か知ってる?
0077デフォルトの名無しさん
2008/08/12(火) 21:44:160078デフォルトの名無しさん
2008/08/12(火) 22:05:380079デフォルトの名無しさん
2008/08/12(火) 22:06:500080デフォルトの名無しさん
2008/08/12(火) 22:07:220081デフォルトの名無しさん
2008/08/12(火) 22:54:250082デフォルトの名無しさん
2008/08/13(水) 00:35:19どうせ独学でしょ。sin[x]をcos[x]にするとかいってて、全然分かってないようだしw
0083デフォルトの名無しさん
2008/08/13(水) 00:38:50いや? 約分という正規化もしたいけどそれとは別に。
正確には文字列処理というべきだったか。
正規表現というから唐突過ぎたみたいだ。
だが合成関数など複雑な数式になると微分するときに正規表現も必要になるんじゃないのかって言いたかった。
0084デフォルトの名無しさん
2008/08/13(水) 00:40:33何が? あと、それだと配列になるぞ。
数値微分だったら簡単にできるだろ。
それとは別の、連続関数の微分のことを言ってるんだが。
0085デフォルトの名無しさん
2008/08/13(水) 00:41:530086デフォルトの名無しさん
2008/08/13(水) 00:47:29y = diff(sin(x))
と入力すると
y = cos(x)
と表示してくれる言語があった気がする
0087デフォルトの名無しさん
2008/08/13(水) 01:04:460088デフォルトの名無しさん
2008/08/13(水) 01:08:25SICPの Symbolic Differentiation みたいなのをやりたいということかな?
Schemeみたいに簡単にはいかないよ。自分で構文解析する必要がある。
構文解析してS式なり、構文木作ってしまえば、Schemeと大差は無いよ。
0089デフォルトの名無しさん
2008/08/13(水) 01:16:50配列とか言ってるようだけど、独学だとしても最低限mathmaticaぐらいは使えるようになってくれ。
それとその数値微分だと、入力が10^-12なら出力は10^-6の半分程度の精度しかないんじゃないか?
0090デフォルトの名無しさん
2008/08/13(水) 01:19:57javaスレだぞ・・・
0091デフォルトの名無しさん
2008/08/13(水) 01:23:00javaは、予約語だらけとかの他の複雑な言語に比べて簡単だからアルゴに集中できるけどね。
0092デフォルトの名無しさん
2008/08/13(水) 01:44:06そういえばMATLABを思い出したよ
>>86は
symbolic(x);
y = diff(sin(x),x)
と入力すると
y = cos(x)
になるやつだったかな。
SchemeとMathematicaは良く知らないがMATLABはよく触っていたから覚えている。
Javaで同じことができるライブラリをどこかで見つけたが有料だったので
諦めた記憶がある。どこのサイトだったかまでは覚えていない。
0093デフォルトの名無しさん
2008/08/13(水) 02:55:25アルゴリズムをアルゴと略す奴は、MZユーザではないだろうな。
気持ち悪い略し方だ。アルクワリズミが草葉の陰で泣いてるぞ。
0094デフォルトの名無しさん
2008/08/13(水) 03:07:34Java自体が始めてまだ数ヶ月なのですが、ウィンドウアプリケーションを初めて作ってみました。
そこで、たとえば3秒ごとにウィンドウに今の時間を更新して表示するプログラムを作りたいのですが、いままでならスレッドで
for(;;){
min=calender.get(Calendar.MINUTE);
System.out.println(min);
Thread.sleep(3000);
}
と書いたスレッドを実行させておけばよかったのですが、ウィンドウ型になるとどうしていいかわからなくなってしまいました・・・
説明が下手で申し訳ないですが、
「3秒ごとに今の時間を取得してそれをウィンドウに表示させる」
というプログラムを作りたいです
0095デフォルトの名無しさん
2008/08/13(水) 03:15:15積分や分数を教科書どおりにウインドに表示するとか。
0096デフォルトの名無しさん
2008/08/13(水) 03:25:44アルコイズミとか出してきて、おまえのほうがキモイ
0097デフォルトの名無しさん
2008/08/13(水) 09:33:541.時刻表示ができる窓を作る。
2.時刻を更新するメソッドを書く。
3.2を定期的に呼ぶスレッドを書く。
4.3のスレッドの生成と実行を書く。
だいたいこんな感じ。
0098デフォルトの名無しさん
2008/08/13(水) 10:03:16アルゴリズムの語源になった人だぞ < アルクワリズミ
0099デフォルトの名無しさん
2008/08/13(水) 10:15:49アプローチがそもそも間違っているとかこういう質問はこのスレへ行くのがいいとか
そういった感じのことでもよいのでよろしくお願いします……
>>94
>>97さんの内容でいけると思いますが、表示をJTextBoxなどのswingコンポーネントでやる場合は
SwingUtilities.invokeLater()を使わないと表示処理が正しく行われないので注意してください。。
(swingコンポーネントの大半のメソッドは、イベントディスパッチスレッド以外から呼んではいけないという決まりがある)
http://homepage3.nifty.com/satoshis/java/swingtips/swing.html
0100デフォルトの名無しさん
2008/08/13(水) 10:44:55texとか知らないのか
0101デフォルトの名無しさん
2008/08/13(水) 10:50:350102デフォルトの名無しさん
2008/08/13(水) 10:58:59その難しいは、個人の能力が低い場合だろ・・・
0103デフォルトの名無しさん
2008/08/13(水) 10:59:28技術的に難しいという意味じゃねーじゃん
0104デフォルトの名無しさん
2008/08/13(水) 11:40:43そりゃ言語を作るのは、並大抵の難易度じゃないだろう。
けど、そういう話?
0105デフォルトの名無しさん
2008/08/13(水) 11:46:01指定した遅延後に実行されるだけだと思うのですが、
どうもIO周りでブロックされているような気がします。
これだとNTPで時間を戻された時とかに使えないような?
public class TestA implements Callable {
private ScheduledFuture<?> future;
private ScheduledThreadPoolExecutor pool = (ScheduledThreadPoolExecutor)Executors.newScheduledThreadPool(1);
public static void main(String[] argv) { new TestA().start(); }
public void start() { future = pool.schedule(this, 1, TimeUnit.MILLISECONDS); }
private void run_() {
System.out.println(sdf.format(new Date()) + ": running"); // !!!これがないと止まらないで動く
ScheduledFuture<?> future2 = pool.schedule(new Runnable() { // 再スケジュール用のタスクセット
public void run() {
if (future.isDone()) {
try {
future.get();
future = pool.schedule(TestA.this, 1, TimeUnit.MILLISECONDS); // ユーザタスクの再スケジューリング
} catch (InterruptedException e) { e.printStackTrace();
} catch (ExecutionException e) { e.printStackTrace(); }
}
}
}, 0, TimeUnit.MILLISECONDS);
}
public Object call() throws Exception {
run_();
return future;
}
}
0106デフォルトの名無しさん
2008/08/13(水) 12:59:59レスありがとうございます。
その、表示する窓についてですが、時間を更新する3秒ごとに描画し直さなくてはならず、
g.drawString(時間)
も3秒ごとに実行させる必要があると思っています。このdrawStringもスレッドに組み込むのでしょうか?
質問が悪く、初歩的で申し訳ないです
0107デフォルトの名無しさん
2008/08/13(水) 13:02:33そういう話だった
Yacc/flexで言語作っている奴のコードを見ていたら
くそやばかった記憶がある。あれは並大抵の努力じゃ実現できないものだと思った。
0108デフォルトの名無しさん
2008/08/13(水) 13:20:33描画はpaintもしくはpaintComponentでする
スレッドは3秒ごとにrepaintを呼ぶ
0109デフォルトの名無しさん
2008/08/13(水) 13:42:27ひまなんでしょww
0110デフォルトの名無しさん
2008/08/13(水) 13:51:43努力してるのかどうかよりも、何がくそやばかったのか分からないんだけど
0111デフォルトの名無しさん
2008/08/13(水) 15:35:45ていうかjavaスレなんだからどうせなら標準でjavaを吐くパーザジェネレータの話をしようぜ
0112デフォルトの名無しさん
2008/08/13(水) 17:06:24最近Javaをはじめたのですが
配列を今勉強していて、
ArrayListに突っ込み、それを拡張する方法はわかったのですが
例えば
int[] num_array = new int[5];
とかやった場合に
num_arrayの大きさ自体を変える事は出来ないのでしょうか?
0113デフォルトの名無しさん
2008/08/13(水) 17:07:49新しく大きな配列を作って中身を移すしかない
0114デフォルトの名無しさん
2008/08/13(水) 19:14:22新規に大きな配列を作って中身をコピーする時に、
使っているのがJDK6以降ならjava.util.ArraysクラスにcopyOfというメソッドがあって、
num_array = java.util.Arrays.copyOf(num_array, 10); // サイズ10の配列を新たに作って中身をコピーしたものを返す
みたいにできるのでちょっと便利。
元のnum_array自体を拡張するのではなく、サイズが変更されたコピーを返すところに注意。
配列は固定長であることに変わりはないので。
JDK5以前なら配列の作成とコピーのコードを自分で書かないといけない。
0115デフォルトの名無しさん
2008/08/13(水) 19:41:06使い方が色々間違っているような気がする
あとstdはどこに変数宣言あるんだ?
future.get(); も激しくデットロックの香り
0116デフォルトの名無しさん
2008/08/13(水) 21:14:07縮めてみた。
import java.util.*;
import java.util.concurrent.*;
import java.text.SimpleDateFormat;
public class TestA implements Callable<Object> {
private ScheduledFuture<?> future;
private ScheduledThreadPoolExecutor pool = (ScheduledThreadPoolExecutor)Executors.newScheduledThreadPool(1);
public static void main(String[] argv) {new TestA().start();}
public void start() {future = pool.schedule(this, 1, TimeUnit.MILLISECONDS);}
public Object call() throws Exception {
System.out.println(sdf.format(new Date()) + ": running");
ScheduledFuture<?> future2 = pool.schedule(this, 1, TimeUnit.MILLISECONDS);
return future;
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss" , Locale.JAPAN);
}
遅延を0にすればとまらないのだから、デッドロックと言うことは無いだろう。
時刻に達したら制止が外れるようなので、
1,2秒さかのぼった程度なら、問題にならないだろうけど、
夏時間とかはどうなるだろ。
また、時計を巻き戻して、処理が止まってから、時計を戻してみた。
すると、1分間ほど経ってから処理が再開した。
0117デフォルトの名無しさん
2008/08/13(水) 23:45:02これは仕様ですか?
// スレッドグループツリーの作成
ThreadGroup g1 = new ThreadGroup("g1");
Thread t1 = new Thread(g1, "t1");
Thread t2 = new Thread(g1, "t2");
ThreadGroup g2 = new ThreadGroup(g1, "g2");
ThreadGroup g3 = new ThreadGroup(g1, "g3");
Thread t3 = new Thread(g2, "t3");
ThreadGroup g4 = new ThreadGroup(g2, "g4");
Thread t4 = new Thread(g4, "t4");
// g1スレッドグループに含まれるスレッドの数
System.out.println("g1.activeCount() = " + g1.activeCount());
上記のプログラムを実行すると
g1.activeCount() = 0
と表示されます。
参考書を見ると
g1.activeCount() = 4
と表示されるとなっています
ご教授お願いします
0118デフォルトの名無しさん
2008/08/13(水) 23:47:410119デフォルトの名無しさん
2008/08/13(水) 23:48:33ありがとうございます
もう一度試してみます
0120デフォルトの名無しさん
2008/08/14(木) 00:07:48■■みんなでサイトつくろうぜwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwww」
「2ちゃん越えるサイト作ろうぜww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwww」
http://gacco.o0o0.jp/
http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
今日トップ絵作ったんだぜ!
興味沸いたらきてください!
0121デフォルトの名無しさん
2008/08/14(木) 00:09:23みんなで本気でつくる気です。 がんばりましょう。
サイトのイメージはSNS×学校みたいな感じ。
サイトデザイン(案)
ttp://www36.atwiki.jp/vipvipschool?cmd=upload&act=open&pageid=12&file=title.jpg
ttp://www36.atwiki.jp/vipvipschool?cmd=upload&act=open&pageid=12&file=viploader744102.jpg
ttp://www.vipper.org/vip900611.png
技術を持ってる人はパー速へ!
ttp://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
wiki:
vipでサイトつくろーぜ
ttp://www26.atwiki.jp/netschool/
詳細はwiki参照
0122デフォルトの名無しさん
2008/08/14(木) 00:15:41■■みんなでサイトつくろうぜwwwwwwww■■
「お前ら一緒にサイト作ろうぜwwwww」
「2ちゃん越えるサイト作ろうぜww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwww」
http://gacco.o0o0.jp/
http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
今日トップ絵作ったんだぜ!
興味沸いたらきてください!
0123デフォルトの名無しさん
2008/08/14(木) 00:16:29あれ。。俺がいる。
ホントすまなかった。
0124デフォルトの名無しさん
2008/08/14(木) 01:54:38C#と同じくどんどん糞スレになってくれ
0125デフォルトの名無しさん
2008/08/14(木) 03:01:18Calendar#getTimeInMillis()で取れる値を入れて、
そのlong値を取得して何月何日何時何分何秒に書き込んだか表示したいのですが、
Calendar cal=Calendar.getInstance();
System.out.println(cal.get(Calendar.YEAR));
cal.setTimeInMillis(//データベースから取得したlong値);
System.out.println(cal.get(Calendar.YEAR));
で比較すると後者のprintlnで表示される値が何を入れても常に1970になります。
setTimeInMillisをAPIドキュメントで見ると
>Calendar の現在時刻を、指定された long 値から設定します。
と書いてあるのでこれで良いかと思ったのですが、これはどこを間違っているのでしょうか??
0126デフォルトの名無しさん
2008/08/14(木) 03:24:21データベースから取得したlong値は正しい値で取得されている?
秒単位でなくてミリ秒単位だからだいたい 31500000000 より小さい値なら1970年になる。
0127デフォルトの名無しさん
2008/08/14(木) 03:39:42protected:
同一クラスのインスタンス、またはそのクラスを継承したクラスのインスタンスからアクセス可能。
なし(デフォルト):
そのインスタンス、または同一パッケージに所属するクラスのインスタンスからアクセス可能。
となっていますが、メンバが「なし(デフォルト)」の場合には、異なるパッケージに存在するサブクラスの
インスタンスからは、アクセスすることができないのですか?
0128デフォルトの名無しさん
2008/08/14(木) 03:42:450129デフォルトの名無しさん
2008/08/14(木) 03:48:49public > なし(デフォルト) > protected > private
となっている参考書は間違いなのですか?
「protected」の場合にアクセスできるものに
「なし(デフォルト)」の場合にアクセスできないので。
0130デフォルトの名無しさん
2008/08/14(木) 03:49:10protectedは同一パッケージ内のクラスからもアクセス可能。
0131デフォルトの名無しさん
2008/08/14(木) 03:50:59> 同一クラスのインスタンス、またはそのクラスを継承したクラスのインスタンスからアクセス可能。
になっているのなら、その参考書の説明は間違い。
0132デフォルトの名無しさん
2008/08/14(木) 03:53:18public > protected >> なし(デフォルト) private
が正しい。
protectedの方が公開の範囲が広い。
0133デフォルトの名無しさん
2008/08/14(木) 03:58:09は、
public > protected > なし(デフォルト)> private
ね。だから、
> となっている参考書は間違いなのですか?
は間違いで正しい。
まとめると、
> となっていますが、メンバが「なし(デフォルト)」の場合には、異なるパッケージに存在するサブクラスの
> インスタンスからは、アクセスすることができないのですか?
は正しい。
> public > なし(デフォルト) > protected > private
> となっている参考書は間違いなのですか?
も正しい。つまり間違ってる。
0134デフォルトの名無しさん
2008/08/14(木) 04:13:16了解です!
ありがとうございます!
0135デフォルトの名無しさん
2008/08/14(木) 04:22:010136デフォルトの名無しさん
2008/08/14(木) 05:11:350137デフォルトの名無しさん
2008/08/14(木) 06:24:300138105
2008/08/14(木) 10:10:40書き込みが入りきるよう縮めていたら消していました。
使い方おかしいですか?
やりたいのはその都度実行する遅延を計算しなおしたいのです。
ここでは止まるのを確認するのに1msで常にやってます。
>>116
printlnでIOがブロック?と書きましたが違ったようです。
↓のように、止まるのは遅延を待機しているのではないかと。
ただその遅延が指定したものでなく、
おっしゃるように戻した時間が経過して戻す以前の時間+遅延になると動くようです。
もしかしたら遅延を指定しているにも関わらず、
内部で時刻を取得し直して計算しているのかとも思うのですが。
スレッド [pool-1-thread-1] (中断中)
Unsafe.park(boolean, long) 行: 使用不可 [ネイティブ・メソッド]
LockSupport.parkNanos(long) 行: 使用不可
AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) 行: 使用不可
DelayQueue<E>.take() 行: 使用不可
ScheduledThreadPoolExecutor$DelayedWorkQueue.take() 行: 使用不可
ScheduledThreadPoolExecutor$DelayedWorkQueue.take() 行: 使用不可
ScheduledThreadPoolExecutor(ThreadPoolExecutor).getTask() 行: 使用不可
ThreadPoolExecutor$Worker.run() 行: 使用不可
Thread.run() 行: 使用不可
0139デフォルトの名無しさん
2008/08/14(木) 10:52:28何か質問の仕方マズかったでしょうか
0140デフォルトの名無しさん
2008/08/14(木) 12:35:080141デフォルトの名無しさん
2008/08/14(木) 13:04:241.2以前でっていう限定がきつい。
古すぎてだれも答えられないと思う。
0142デフォルトの名無しさん
2008/08/14(木) 13:10:54初心者の宿題出なければ、appletを作っているやつ自体いないのでは
0143デフォルトの名無しさん
2008/08/14(木) 13:43:41「お前ら一緒にサイト作ろうぜwwwwwwwwww」
「2ちゃん越えるサイト作ろうぜwwww」
「仕事無いんだ・・・・・・」
「やろうぜ!」
「みんなでサイトつくろうぜwwwwwwwwww」
http://gacco.o0o0.jp/
http://yutori.2ch.net/test/read.cgi/news4vip/1218673130/
http://ex14.vip2ch.com/test/read.cgi/part4vip/1218612197/
興味沸いたらきてください!
======================!! 人材募集中 !!======================
■プログラムを組んでくれる人
*サーバー側
言語はRubyかPerlの予定ですが、Perlが有力候補。
・チャット
定期的にクライアントから着信があり、それに対して更新されたチャットのメッセージを返信する程度の能力。じゃなくて機能。
通信するときのフォーマットは未定。
・ログイン・アカウント管理
ログイン認証、各アカウントの点数などの管理。データベースは未定。
・お絵描き
未定。とりあえず鯖に負担がかからない程度にたまに画像を送信してあげるって感じで
*クライアント側
はっきり言って俺もわからね。Ajaxだとかflashだとかjavaだとか。
■機能提案(正しくは人材ではなく、意見?)
「こんな機能があったら良い!」「こうするともっと楽しくなる!」などの意見募集中。
挨拶とか気にせずスレにどんどん書き込んでくれればおk
■デザイン
サイトのデザインを考えてくれる人、作ってくれる人募集中。
できればphotoshop illustrator使える人(プロジェクト共有しやすいので)
0144デフォルトの名無しさん
2008/08/14(木) 14:09:091) java.util.zip 使って外部アーカイブを読める自前の URLStreamHandler 作って、
URL.setURLStreamHandlerFactory してみるとか……
セキュリティマネージャに怒られてダメかもしれんが。
2) 1.1レベルでは互換性の高そうな標準API使う方法だと
1)のアプローチぐらいしかないので、それがダメなら
外部jar使うの諦めるか、互換性諦めるか、音出す事を諦めるか選ぶしかないと思うぞ。
0145デフォルトの名無しさん
2008/08/14(木) 14:20:42javaのデスクトップは、アプレットに適したライブラリが全くなかった他の技術に先を越されたけど、それを補うように進化してきたから、1.2以前だといろいろ出来るわけじゃないよ。
0146デフォルトの名無しさん
2008/08/14(木) 15:47:14>>141,142,145
うーんやっぱ今時Appletでしかも1.1縛りなあたりがネックですよねぇ。
自分としては1.2以降のAPI使いたいんですが、MRJに対応しなくてはならない事情があるものでして。
無理そうなら環境によって動作切り替える方向で進めてみようと思います。
>>144
なるほど、URLStreamHandlerは今まで全く見てませんでした。
URL指定をメモリ内のByteArrayInputStreamにリダイレクトできればあるいは、のような感じですね。
光明が見えたような気がしてきました。この方向で色々トライしてみます。
0147デフォルトの名無しさん
2008/08/14(木) 16:47:010148デフォルトの名無しさん
2008/08/14(木) 16:54:550149デフォルトの名無しさん
2008/08/14(木) 17:08:100150デフォルトの名無しさん
2008/08/14(木) 17:28:42やがてプログラマが必要なくなるのではなかろうか?
部品をちょちょいと選択すればプログラムができてしまわないだろうか?
そのとき、元プログラマの人は、どうやって食っていくのだろうか?
0151デフォルトの名無しさん
2008/08/14(木) 17:35:50稼動サーバーでのみリークが発生するようで、アプリ内で何とかしろといわれているので、
JDTとか見たんですけどまったく理解できずに断念です。
やはりツールを使用しないと無理ですかね・・・
0152デフォルトの名無しさん
2008/08/14(木) 17:50:190153デフォルトの名無しさん
2008/08/14(木) 18:06:26探しても見つからなかったので…
ない場合、何らかの形でJPanel辺りに貼り付けて表示する方法はあるのでしょうか?
0154デフォルトの名無しさん
2008/08/14(木) 18:07:300155デフォルトの名無しさん
2008/08/14(木) 18:12:13俺の職場、それしかなかったけど。。
色々掲示板みてると俺のいた職場がよほどくそだったことがよくわかる。
ここで揶揄されてることが俺の職場ではまさにデフォルトだった。
ろくに経験もないうちから研修(実務にまったく役に立たない)と称して独力(上司は単なる営業社員)でつくらされて
現場にいっても俺みたいなど素人がもう一人。。できるわけねえだろ。。
0156デフォルトの名無しさん
2008/08/14(木) 18:47:47そりゃあソースコードが複雑で読みにくいという
0157デフォルトの名無しさん
2008/08/14(木) 19:56:430158デフォルトの名無しさん
2008/08/14(木) 19:58:43おまえが糞だってことが良く分かった
0159デフォルトの名無しさん
2008/08/14(木) 20:09:30コーディング量が少し減ることと、
そのメソッドへ他からアクセスできないこと以外で
何かメリットってあるのでしょうか?
よろしくお願いします。
0160デフォルトの名無しさん
2008/08/14(木) 20:10:150161デフォルトの名無しさん
2008/08/14(木) 20:15:040162デフォルトの名無しさん
2008/08/14(木) 20:42:09それは職場が糞なんじゃなくて、お前が糞なんじゃないの?
なんかお前にはVBの方が向いてるような・・・
0163デフォルトの名無しさん
2008/08/14(木) 20:46:240164デフォルトの名無しさん
2008/08/14(木) 21:44:180165デフォルトの名無しさん
2008/08/14(木) 22:40:07・いちいち名前を考えずに済む
・普通の内部クラスは書く場所と使う場所が離れていてわかりにくい
0166デフォルトの名無しさん
2008/08/14(木) 23:53:02File file = fileChooser.getSelectedFile();
Class cls = file.getClass();
これではうまくできません。
どのようにすれば良いか、どなたか教えてくれませんか?
0167デフォルトの名無しさん
2008/08/15(金) 00:32:35class MyClassLoader extends ClassLoader {
public Class<?> loadClassfile(File file) throws いろいろ {
byte[] data = new byte[(int)file.length()];
FileInputStream in = new FileInputStream(file);
new DataInputStream(in).readFully(data);
in.close();
Class<?> cls = defineClass(null, data, 0, data.length);
resolveClass(cls);
return cls;
}
}
という独自クラスローダを作って、
Class<?> cls = new MyClassLoader().loadClassfile(file);
でどうよ
0168デフォルトの名無しさん
2008/08/15(金) 00:50:39クラスを取得してコンストラクタの分析などをリフレクションを用いて実現させたいんです。
File file = fileChooser.getSelectedFile();
Class cls = Class.forName(file.toString());
とかも試したんですけどうまくいきませんでした…
なにぶん初心者なもので、根本的なことが間違ってる気がしてならないですorz
0169デフォルトの名無しさん
2008/08/15(金) 01:44:09Class.forNameで渡すのはFileとかのクラスファイルの場所ではなくてクラス名そのもの。
クラスファイルをクラスパスの通っているところから参照できる場所に置いておけばクラス名から探してくれる。
クラス名がfoo.bar.Hogeならクラスパスの通っているところのサブディレクトリとしてfoo、その下にbarという
ディレクトリがあって、その中にHoge.classがあればClass.forName("foo.bar.Hoge")でClassインスタンスが得られる。
クラスパスとは無関係にクラスをロードしたいのならURLClassLoaderを使うのが楽かも。
URLClassLoaderでぐぐればサンプルはいくらでもある。
0170デフォルトの名無しさん
2008/08/15(金) 04:09:03readFully(data); を使うのは単に趣味ですか?
read(data);とどう違うのかAPI Docs上から分からないんですがご存知でしょうか。
0171デフォルトの名無しさん
2008/08/15(金) 04:57:341バイトでも読めれば、読み込めたバイト数を返す
readFullyは指定したバイト数全部読み込む
読み込めなければEOFException
0172デフォルトの名無しさん
2008/08/15(金) 05:35:43間違ってはないけど、そこで使うのはDataInputの設計目的と微妙に違うような…
0173デフォルトの名無しさん
2008/08/15(金) 09:19:210174デフォルトの名無しさん
2008/08/15(金) 10:29:51引数インスタンスを取得する方法はあるでしょうか?
0175デフォルトの名無しさん
2008/08/15(金) 10:39:16caller の引数に触りたいって話ならデバッガ使えば?
0176デフォルトの名無しさん
2008/08/15(金) 14:05:490177デフォルトの名無しさん
2008/08/15(金) 19:18:11値を返すメソッドなら期待される値と実際の値を比較しますが、
値を返さないメソッドはどのようにテストをすればいいのでしょう。
DBに書き込むメソッドとかなら書き込まれた値をチェックできますが、
例えば以下のようなものです。
・メールを送信するメソッド
・コンソールに文字を出力するメソッド
0178デフォルトの名無しさん
2008/08/15(金) 19:46:12staticだから長いプログラムを書くと面倒になる部分が多いので
mainでは自分のクラスのコンストラクタをnewするくらいにしか使わなくて、
そのコンストラクタの方で色々書くようにしているのですが、どうなんでしょう?
0179デフォルトの名無しさん
2008/08/15(金) 19:49:06・メールを送信するメソッド
メールを送信するクラスが正しく呼び出されたかをチェックする
・コンソールに文字を出力するメソッド
これは難しいのでやらない
やる場合は、特定の文字を出力するメソッドのテストとしておいて、
Writerはsetterで設定できるようにしておく
どちらにせよコード中にSystem.outがあるのはウンコ
0180デフォルトの名無しさん
2008/08/15(金) 19:51:46いわゆるエントリポイントってやつだから、外部から起動する時に必要な範囲の処理を行うのが正しい
なので、コンストラクタの方で色々やっているのは正しいよ。
mainに書くべき処理といえば、後はプログラムの実行引数のチェックやデフォルト値の設定。
バグで落ちたときにどうするかの処理とか、そんな感じだろうな
0181177
2008/08/15(金) 20:12:33> メールを送信するクラスが正しく呼び出されたかをチェックする
これ、もうちょい詳しく解説してくれるとうれしいです。
> Writerはsetterで設定できるようにしておく
なるほど。それなら結構簡単にテストできそうですね。
0182デフォルトの名無しさん
2008/08/15(金) 20:22:42テストアドレスに送信して、受信して、その内容をチェックすれば良いだけでは
0183デフォルトの名無しさん
2008/08/15(金) 21:40:47方法は幾つかあるけど、インターフェイスをきってテスト用のオブジェクト(モック)でテストを実行する。
モックなんで実際にはメールを投げずに内部的なステータスを変化させるだけ
テストとしてはステータスが変わった(目的のメソッドが実行された)ことを確認する
完全にJavaMailを使っている箇所などをテストする場合は面倒だけど、EasyMockなんかを利用するしかない。
単体テストで再帰的にやるならばこんな感じ。
後は本当に動くかどうかは開発中は動作確認レベルで済ませてシステムテストでやる
0184デフォルトの名無しさん
2008/08/15(金) 22:20:58サーバ側
public static void main(String[] args){
ServerSocket ss=new ServerSocket(7777);
Socket sock=ss.accept();
BufferedReader br=new BufferedReader(new InputStreamReader(sock.getInputStream()));
System.out.println(br.readLine());
br.close();
sock.close();
ss.close();
}
クライアント側
public static void main(String[] args){
Socket sock=new Sock(コンピュータ名,7777);
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(sock.getOutputStream));
bw.write(br.readLine());
bw.close();
br.close();
sock.close();
}
この二つを実行するとサーバ側で何も表示されません。
クライアント側のBufferedReaderの件を全部消してbw.write("hoge");
とかに直すと、ちゃんとサーバ側のPCでhogeと表示されるのですが、
何がいけないのでしょうか?
0185デフォルトの名無しさん
2008/08/15(金) 22:23:090186デフォルトの名無しさん
2008/08/15(金) 23:50:37C側でクラス内のString型のフィールドにデータを入れようと以下のようなプログラムを書きました。
そしたら半角カナに濁点の文字が文字化けしてしまいました。
こういった場合どのように対処したらいいのでしょうか、ご教授ください!
C側↓
JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){
jclass cs = env->GetObjectClass(obj);
jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;");
env->SetObjectField(obj, fid, env->NewStringUTF("サブキー");
return 0;
}
java側↓
HogeClass hoge = new HogeClass();
Main.Test(hoge);
System.out.println(
new String( hoge.strParam.getBytes("iso-8859-1"), "MS932")
);
0187もう泣きそう
2008/08/16(土) 01:30:05教えて下さい。
シェルスクリプトで設定した環境変数は、JAVA(jarのクラス)側で
読み取れると思いますが、その逆は可能なのでしょうか?
以下を想定しています。
もし可能なら、メソッド名とかを教えて下さい。
-----------------------------------------
#!/bin/bash
export AAA=a.txt
java classA -xm=512m・・・
echo KEKKA1=$KEKKA1 ←これが可能でしょうか?
echo KEKKA2=$KEKKA2 ←これが可能でしょうか?
-----------------------------------------
public void class cassA {
String aaa = system.getenv("AAA");
String kekka1 = "data1"; ←これを返したいのです。
String kekka2 = "data2"; ←これを返したいのです。
(設定するロジックというかメソッド名・・・)
}
JAVA側の変数をシェルで読み取れれば良いのですが、
もし可能なら、メソッド名とか簡単でもいいのでサンプル例等を
教えて下さい。
もう泣きそうです・・(;-;)
0188デフォルトの名無しさん
2008/08/16(土) 01:38:01でシェルで読み込めば
0189デフォルトの名無しさん
2008/08/16(土) 02:03:52通常、子プロセスは親プロセスの環境変数を変えられない。
0190デフォルトの名無しさん
2008/08/16(土) 05:21:40Oracle のサイトに Java関連の Tips が大量に合って助かったのですが
逆に .NET でのサンプルが皆無だったので気になりました
Oracle と Java って何か深い繋がりがあるのでしょうか?
それとも Oracle が Java を一方的に支持してる感じ?
0191デフォルトの名無しさん
2008/08/16(土) 07:40:40半角かな以外は化けないか確認した?
半角英数はともかく、漢字は化けると思うが。
> env->SetObjectField(obj, fid, env->NewStringUTF("サブキー");
これ UTF-8 渡してるのか?
VisualC++ とかなら env->NewString(L"サブキー", 5) とかした方が。
> new String( hoge.strParam.getBytes("iso-8859-1"), "MS932")
これやると確実に化けるんじゃね?
0192デフォルトの名無しさん
2008/08/16(土) 08:49:08JNI を使ってJavaクラスのパラメータをいじる方法は良く分からんですが、
半角カナというのは、どの文字符号化方式で定義されているものを使うのですかね。
String 内部は UTF-16 (char) 配列です。
0193デフォルトの名無しさん
2008/08/16(土) 09:43:020194デフォルトの名無しさん
2008/08/16(土) 11:03:24メソッド名やシグニチャがかぶったら継承できないんですか。
特に他の人が使ったインタフェイスで、
戻り値がかぶったり、戻り値がlongとかだったらどうするのでしょうか。
どうやって回避するんでしょうか?
0195デフォルトの名無しさん
2008/08/16(土) 11:27:09シグニチャ同じで戻り値型違うのは無理。
シグニチャ同じで戻り値型同じなら実装できるけど、
各interface が別々の振る舞いを期待してる場合は無理。
メソッド名付ける時点で被らないように気をつけるぐらいしかないね。
0196デフォルトの名無しさん
2008/08/16(土) 11:30:12インターフェースはそもそもシグネチャしか定義しない(定数定義もあるけどここでは無視)ので、多重定義になっても問題はない。
何故なら、同じ名前、同じ引数、同じ返り値を持っている、ということ以外の情報は定義されないから。
実装側で、同じシグネチャなのに異なるインターフェースでアクセスされると違う動作をしなければならない、ということであれば、それは設計が間違っている。
0197デフォルトの名無しさん
2008/08/16(土) 11:38:24そういう問題じゃなくて、AppendableとStringBuffer.appendのような話をしてるんですけど…
それもjdk1.4以前だとどうやって回避してたんでしょうか。
0198デフォルトの名無しさん
2008/08/16(土) 11:41:59このケースって、なんか問題あんの?
0199デフォルトの名無しさん
2008/08/16(土) 11:48:010200デフォルトの名無しさん
2008/08/16(土) 11:49:530201デフォルトの名無しさん
2008/08/16(土) 12:02:47何が疑問なのかわからん。その例ってインターフェースの多重継承とは何の関係もないじゃん。
一応書いとくけど、インターフェースの多重継承って、
interfece SuperInterfaceA { int hoge(int x); }
interface SuperInterfaceB { int hoge(int x); }
interface SubInterface extends SuperInterfaceA, SuperInterfaceB {}
というものだぞ。
0202デフォルトの名無しさん
2008/08/16(土) 12:25:23こんなのでどうさ。
ttp://www.y-adagio.com/public/standards/tr_javalang2/interfaces.doc.html#40247
0203デフォルトの名無しさん
2008/08/16(土) 12:50:00本当は、自作のインタフェイス interface My_interface{
My_interface append(My_interface);
}
例えば引数assertチェックありで、
class StringBufferも引数My_interfaceに参加させたいんですけど、
class StringBufferは当然他人が作ったライブラリなので、My_interfaceを実装できません。
今のところifで分岐してるんですけど、こういうときは、どうやれば自作インタフェイスにくわえられるんでしょうか。
0204デフォルトの名無しさん
2008/08/16(土) 12:52:200205デフォルトの名無しさん
2008/08/16(土) 12:58:170206デフォルトの名無しさん
2008/08/16(土) 13:45:320207デフォルトの名無しさん
2008/08/16(土) 13:47:28例えばで出してみたんですけど、分かりませんか?
自作したインタフェイスの話しなんですけど・・・
0208デフォルトの名無しさん
2008/08/16(土) 13:53:320209デフォルトの名無しさん
2008/08/16(土) 14:15:28まず、Javaでは原則として既存のクラスやインターフェースに手を加えることはできない。
該当のクラスがfinalでなければ、サブクラスを作ってそこでimplementsする手はある。
該当のクラスがfinalであれば、自作のクラスでラップするしかない。
0210デフォルトの名無しさん
2008/08/16(土) 16:38:080211デフォルトの名無しさん
2008/08/16(土) 16:38:530212デフォルトの名無しさん
2008/08/16(土) 16:47:37(List<MyClass>)list
のようなキャストが失敗します。
0213デフォルトの名無しさん
2008/08/16(土) 16:54:48そこに他人が作ったクラスも参加させるのはどうするんでしょうか?
とういことなんですけど、これだけじゃ何言ってるかわからないと思いませんか。
0214デフォルトの名無しさん
2008/08/16(土) 16:57:22共有ライブラリとかプラグインとかリフレクションの世界のことかと思った。
0215デフォルトの名無しさん
2008/08/16(土) 18:33:05MyBig(String v){super(v);}
public MyBig abs(){return this;}
}
BigDecima.abs()をオーバライドしたいのですが、1.4以前ではどうやるんでしょうか。
negate()と同じく、メソッド名に意味があるので名前を変更できないので何かよい方法はないでしょうか?
0216デフォルトの名無しさん
2008/08/16(土) 18:54:57import org.eclipse.jdt.core.dom.*;
などど打っても org.eclipse が見つかりませんというエラーが出てしまいます.
どうすれば解決できますか?
0217デフォルトの名無しさん
2008/08/16(土) 19:09:491.4 だと covariant return typeが使えないから public BigDecimal abs()で我慢。
もしくはextends BigDecimalを諦める。
0218デフォルトの名無しさん
2008/08/16(土) 19:43:52それはどこを参照するかを固定するという認識で合ってますでしょうか?
その場合、参照先のインスタンスの属性をsetter等を用いて変更されないようにするというのは
不可能なのでしょうか?
0219デフォルトの名無しさん
2008/08/16(土) 20:09:15SPIのことじゃない?
0220デフォルトの名無しさん
2008/08/16(土) 20:37:33Immutable な拡張クラス作って属性変更できないようにするとか
不可能じゃないけど変更されないようにできる便利な言語機能はない。
0221デフォルトの名無しさん
2008/08/16(土) 20:40:07setterを作らない
0222デフォルトの名無しさん
2008/08/16(土) 21:36:260223デフォルトの名無しさん
2008/08/16(土) 21:48:510224デフォルトの名無しさん
2008/08/16(土) 23:41:22自己解決しました.
プロジェクトをプラグインプロジェクトに変更して,プラグイン依存関係を解決したらO.K.でした.
0225デフォルトの名無しさん
2008/08/17(日) 00:25:07キャストは動的。ジェネリクスは静的かつ、型情報は消滅。
>218
変更させたくないインスタンスは委譲でも使って隠匿すべし。
022694
2008/08/17(日) 01:12:31遅くなりましたが、応えてくださった97さんや99さんなど、皆さんありがとうございます。
・・・すいません。それだけです。
0227デフォルトの名無しさん
2008/08/17(日) 01:27:370228デフォルトの名無しさん
2008/08/17(日) 12:55:58具体的には、フォーム上に日本地図の画像があって、
各県をクリックすると、ポップアップウィンドウが表示される、
みたいな感じなんですが。
0229デフォルトの名無しさん
2008/08/17(日) 13:00:470230デフォルトの名無しさん
2008/08/17(日) 19:59:570231デフォルトの名無しさん
2008/08/17(日) 20:34:200232デフォルトの名無しさん
2008/08/17(日) 21:23:11愚痴を書き込むスレではないだろ
0233186
2008/08/17(日) 21:28:01初心者なので、UNICODEとUTF8の違いとかいまいちピンときませんが、
イメージは「UNICODEがIDとしたらUTF8はIDをUTF8という形式で表現したデータ」ということでしょうか?
間違ってましたら指摘してくださいorz
で、UTF8での受け渡しを止めてUNICODEでの受け渡しをするようにしました
C側↓
JNIEXPORT jlong JNICALL Java_Test(JNIEnv *env, jclass, jobject obj){
jclass cs = env->GetObjectClass(obj);
jfieldID fid = env->GetFieldID(cs,"strParam" , "Ljava/lang/String;");
const char* cc = "サブキー";
int unicodeLength = MultiByteToWideChar(CP_ACP, 0, cc, strlen(cc), NULL, 0);
WCHAR* unicodeBuffer = new WCHAR[unicodeLength];
MultiByteToWideChar(CP_ACP, 0, messagetmp, strlen(messagetmp), unicodeBuffer, unicodeLength);
jstring strj = env->NewString((jchar *)unicodeBuffer,unicodeLength);
env->SetObjectField(obj, fidsData, strj);
return 0;
}
java側↓
HogeClass hoge = new HogeClass();
Main.Test(hoge);
System.out.println( hoge.strParam );
ちゃんと表示できてるみたいです。
しばらくはまってたのですが、「sizeof」で文字サイズを取得してたのですが、
マルチバイト?では使えなくて「MultiByteToWideChar」を使用しないといけないということですね。今までjava言語しか触ったことないのでしたorz
もっと簡単な方法ありましたら是非ご教授くださいm(__)m
0234デフォルトの名無しさん
2008/08/17(日) 21:41:51wchar_t wcstr[] = L"サブキー";
jstring strj = env->NewString((jchar *)wcstr, sizeof(wcstr) / sizeof(wchar_t));
Windows環境っぽいので wchar_t が UTF-16 きめうち。
テストしてないので動かなかったらごめん。
あと new WCHAR[unicodeLength] したのに delete しなくていいんか?
0235デフォルトの名無しさん
2008/08/17(日) 22:02:02いくら夏とはいえ、ちょっと見にコンパイルを通らないコードを貼るやつって、何がしたいんだろうな・・・
0236デフォルトの名無しさん
2008/08/17(日) 22:12:350237デフォルトの名無しさん
2008/08/17(日) 22:24:06教えてください。お願いします。
0238デフォルトの名無しさん
2008/08/17(日) 22:27:440239デフォルトの名無しさん
2008/08/17(日) 22:33:020240デフォルトの名無しさん
2008/08/17(日) 23:14:570241デフォルトの名無しさん
2008/08/18(月) 00:00:16所謂非矩形ウィンドウを作りたいと思い、検索してみたところ、
1. Mac限定の方法(背景色を透過色に設定?)
2. ウィンドウの下をキャプチャして疑似透過
の二つがあるらしい、ということを知りましたが、1番は問題外、
また、最前面に表示するような仕様のため、2番では背景と矛盾が
生じない為の頻繁な更新による負荷がやや重めになってしまいます。
もし他に方法がありましたら、参考URL等を教えてください。
#具体的には、Officeに出てくるうるさいイルカみたいな感じで、
#画像を枠無しで表示したいと考えています
#SWTだとRegionとやらで実装できるようなのですが...
0242デフォルトの名無しさん
2008/08/18(月) 00:06:32https://jdk6.dev.java.net/6u10ea.html
確かこれでShapeを使った非矩形ウィンドウが作れたはず・・
0243デフォルトの名無しさん
2008/08/18(月) 00:29:07Gooleしても見つかりません
0244デフォルトの名無しさん
2008/08/18(月) 00:31:380245241
2008/08/18(月) 00:32:08AWTUtilitiesとやらで非矩形や透過ウィンドウが実装出来るようになるのですね。
とりあえずはBeta使って仮実装したり、他の方法も色々工夫したりしてみながら
のんびりと正式版のリリースを待つことにします。
素早いご返答、ありがとうございました。
0246243
2008/08/18(月) 00:38:37ほんと修飾子って何て読むんですか?
0247デフォルトの名無しさん
2008/08/18(月) 00:51:09「しゅうしょくし」だよ。
0248デフォルトの名無しさん
2008/08/18(月) 00:51:29setLongに高いインデックス(10くらい)を指定すると、
executeUpdateでエラーが発生するようです。
要は、INSERT INTO文のVALUESに指定できる?の数に制限が
あるということなのですが、この問題にはどう対処したらよいでしょうか。
0249デフォルトの名無しさん
2008/08/18(月) 00:51:51ってか流石にこれはガチで小学生でも分かるから、
そういう意味ではなくvolatileとかstrictfpとかの読み方を聞いてるのか?
0250デフォルトの名無しさん
2008/08/18(月) 01:01:290251デフォルトの名無しさん
2008/08/18(月) 01:04:320252243
2008/08/18(月) 01:10:03>>249
ガチで有難うございます
ほんと何て読むか解らなくて…
年は40なんですが、趣味でプログラムでも始めてみようかと思い
創るJavaって本を買いまして、暇暇に読んでます
もちろん仕事はプログラムとは
あまり関係ありません
ただ、知識は無いと
指示が出来ないんですよね…
0253デフォルトの名無しさん
2008/08/18(月) 02:14:27ttp://www.okapiproject.com/java/java_ref/index.html
0254デフォルトの名無しさん
2008/08/18(月) 09:39:00ではオジサン相手に手取り足取り教えてやろうか。
0255デフォルトの名無しさん
2008/08/18(月) 09:41:550256デフォルトの名無しさん
2008/08/18(月) 09:48:07老婆心ながら
読むだけじゃだめだぞ
0257デフォルトの名無しさん
2008/08/18(月) 11:54:150258デフォルトの名無しさん
2008/08/18(月) 11:56:17じゃう゛ぁじゃう゛ぁジンジンジーン♪
0259デフォルトの名無しさん
2008/08/18(月) 12:07:08プログラムを実行するたびに
同じ要素が何個も一つにセットに入ったり、一つだけ入ったりしたんだけど。
なぜですか?
TreeSetにしても同じような症状でした。
でもCopyOnWriteArraySetにしたら同じ要素は一つしかありませんでした。
どうしてかおしえてください。
0260デフォルトの名無しさん
2008/08/18(月) 12:50:32javaにはオペレーターは無いはずですが
なぜStringクラスだけ+=が使えたりするんでしょうか
どなたかおしえてください
0261デフォルトの名無しさん
2008/08/18(月) 12:51:460262デフォルトの名無しさん
2008/08/18(月) 13:42:50ソースを読んでみると、MixerSynthの親の抽象クラス「AbstractPlayer」にて、型のチェックでHeadspaceInstrumentの子クラスじゃないと読み込めないようにしてあるようなのです。
さらにそのHeadspaceInstrumentというのはデフォルトアクセスで、どうしようもないのです。
どのようにすればInstrumentを追加・変更できるのでしょうか?
0263デフォルトの名無しさん
2008/08/18(月) 14:01:48日本語で
0264デフォルトの名無しさん
2008/08/18(月) 15:17:26> javaにはオペレーターは無いはずですが
Javaにはオペレータが結構あります。
Stringクラスだけでなくintでも+=が使えます。
クラス型に対するオペレータでも=や==はStringクラス以外でも使えます。
0265デフォルトの名無しさん
2008/08/18(月) 15:56:23cの場合ログから解析が難しい場合はその段階でkill -SEGVでメモリダンプしてデバッガでメモリの情報を調査するという方法があり
それをjavaでもやりたいと思っているのですが。
eclipseで接続できないところなので、そこでダンプを取って持ち帰ってeclipseで確認したいと思っていますが、
cのようにいかないですかね???
0266デフォルトの名無しさん
2008/08/18(月) 16:19:550267デフォルトの名無しさん
2008/08/18(月) 16:45:23public void show() throws Exception{
System.out.println("oya");
}
}
class Ko extends Oya{
public void show(){
System.out.println("ko");
}
}
public class Cui{
public static void main(String args[]){
Ko a=new Ko();
Oya b=new Ko();
a.show();
b.show();
}
}
これでb.showでエラーが出るのが理解出来ません。
bはサブクラスでオーバーライドされた方のメソッドを呼び出しているので
やっていることはa.show()と同じ気がするのですが、何ででしょう?
0268デフォルトの名無しさん
2008/08/18(月) 16:47:40VisualVM とか jhat を調べてみるといいかも
0269デフォルトの名無しさん
2008/08/18(月) 16:52:39http://www.jsresources.org/faq_midi.html#create_soundbank
0270デフォルトの名無しさん
2008/08/18(月) 16:56:53Oya#show は Exception を投げると宣言しているので、
main の b.show() が投げる Exception をどうにかする必要がある
(実際には投げられないのだとしても、宣言してる以上、処理しないとだめ)
0271デフォルトの名無しさん
2008/08/18(月) 17:09:06これって親のメソッドが仮に例外投げないとしたらコンパイルが通って
b.showの実行結果は「ko」になりますよね。
Oya#showはKo#showで消されているため例外投げる部分が無いものになる気がするんです。
素直にKo#showを使ったa.showは例外処理必要無いのに、
なんでOyaの参照で間接的にKo#showを使うと例外処理が必要になるんでしょう?
0272デフォルトの名無しさん
2008/08/18(月) 17:21:08b は Oya だと宣言してるし。
0273デフォルトの名無しさん
2008/08/18(月) 17:24:36内容はどちらもボタンを押すとデータの送信などは行わず遷移するだけなので、どちらも同じ記述をしているのですがhtml→クラスがうまくいきません。
JSP→クラスの設定はweb.xmlで記述しているのでhtmlだとweb.xmlが読み込まれないのが原因なのではないかと思っているのですが、web.xmlが使えないとなると解決方法がわかりません。
どうすればよいのでしょうか。
0274デフォルトの名無しさん
2008/08/18(月) 17:25:47そのOyaの関数がKoの関数になってるからってことを疑問にしてるんでしょ。
0275デフォルトの名無しさん
2008/08/18(月) 17:28:50b が Oya 型だから b.show は単純に Oya#show の宣言を見る
Oya b = new Oya();
のときと
Oya b = new Ko();
のときで b.show のエラーの有無が変わってはかなわんし
(b は同じ Oya 型。単に初期値が違うだけ)
もし
Oya b = null; とか
Oya b = hoge(); とか
Oya b = x < 10 ? new Oya() : new Ko();
とかだったらどうするよ
0276デフォルトの名無しさん
2008/08/18(月) 17:43:48レスありがとうございます。
宣言はスーパークラスの方を見て中身はサブクラスを見てる感じなんですね。
オーバーライドで引数とか全部一緒だからそんなことも出来るのか。
0277デフォルトの名無しさん
2008/08/18(月) 17:45:55というのが分かるのは 275 が書いたように実行時なんだな。
コンパイル時は宣言した型でしか見てないんだな。
0278デフォルトの名無しさん
2008/08/18(月) 19:39:27> >>260
> > javaにはオペレーターは無いはずですが
> Javaにはオペレータが結構あります。
> Stringクラスだけでなくintでも+=が使えます。
> クラス型に対するオペレータでも=や==はStringクラス以外でも使えます。
例えば
public AnyClass{
int n;
String s;
public AnyClass()
{
n = 0;
s = null;
}
public AnyClass(int num,String str)
{
n = num;
s = str;
}
}
みたいなクラスがあったとして
下記のような動作させるにはどうすれば良いのでしょう
AnyClass obj1 = new AnyClass(10,"ab");
AnyClass obj2 = new AnyClass(1,"c");
AnyClass obj3 = new AnyClass();
obj3 = obj1 + obj2;
0279デフォルトの名無しさん
2008/08/18(月) 19:56:30演算子の多重定義はサポートしてないから無理。
0280デフォルトの名無しさん
2008/08/18(月) 22:19:35public AnyClass plus(AnyClass other)
0281デフォルトの名無しさん
2008/08/18(月) 22:21:10演算子のオーバーロードがしたいって言ってるんじゃないの?
0282デフォルトの名無しさん
2008/08/18(月) 23:04:54× Javaにはオペレータは無い。
○ Javaにはオペレータのオーバーロードはできない。
で、Stringには連結オペレータが予め用意されている、と。
なぜ連結オペレータが用意されているかは設計者にでも聞いてくれ。
0283x
2008/08/18(月) 23:28:03分かる方いらっしゃいますか?
よろしくお願いします。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
import java.awt.Font;
import java.math.*;
/**
* @param args
*/
public class applet5no1 extends Applet
{
public void paint(Graphics g)
{
int x1,y1,sec;
sec = 30;
x1= 6*sec;
g.drawLine (100, 100,100+70*Math.cos(60 * Math.PI/180) , 100-70* Math.sin(60 * Math.PI/180));
}
}
0284デフォルトの名無しさん
2008/08/18(月) 23:31:430285x
2008/08/18(月) 23:33:270286デフォルトの名無しさん
2008/08/18(月) 23:43:49sinとかcosの結果はdouble型
drawLineの引数はint型
なので型が合わない
intに変換しる
0287x
2008/08/18(月) 23:45:020288x
2008/08/18(月) 23:59:08いろいろ試したのですが、どうしてもうまくいきません。
具体的にどうすればいいか教えてもらえませんか?
0289x
2008/08/19(火) 00:13:44いろいろ試したのなら、どう試したけれど、どううまくいかなかったが書けるはずなのに、
それができないから嘘がばれると思ったので正直に書きました。
0290デフォルトの名無しさん
2008/08/19(火) 00:15:58リファレンス見るとかググるとか思いつかないのか
そんなことだと永久に2chに聞きに来るつもりか?
0291x
2008/08/19(火) 00:20:42ググろうにも何をキーワードにすればいいか全然思いつきません。
ここは初心者にきびしいネットワークですね。
0292デフォルトの名無しさん
2008/08/19(火) 00:22:10君がゆとり杉なのかもね。
0293デフォルトの名無しさん
2008/08/19(火) 00:33:400294デフォルトの名無しさん
2008/08/19(火) 00:35:30http://java.sun.com からJava SEのリンクを辿っていけばそのうちに辿りつけますよ。
画面左上はパッケージのリスト、左下にクラスのリスト、右がメインビューワとなっております。
防御スクリーンを展開したままフェイザーと光子魚雷の準備を抜かりなきようお願いもうしあげます。
0295デフォルトの名無しさん
2008/08/19(火) 00:36:09名前のxが抜けてる抜けてる
0296デフォルトの名無しさん
2008/08/19(火) 00:48:39・貴方が書いている言語はきっと“Java”
・二人も“変換”しろと言っている
いくら考えても無いところからキーワードを思いついたりしないだろうな、すでに書いてあるのに……
0297デフォルトの名無しさん
2008/08/19(火) 00:56:37初心者
【人々】
(1)
・「覚えよう」と言う意思の無い人。
・こう言う人は、永遠の初心者。
(2)
・全てをチャラにできる魔法の言葉。
・質問をする時にこの言葉さえつければ、何を聞いても良いと勘違いしている方がいらっしゃる。
・「初心者なら、そういう難しい事は考えずにまずは基本を覚えなさい。」と、言いたくなる事がある。 でも、お客さんだしそんな事は言えないしなぁ・・・。
某辞典から
いや誰とは言わないけどね
0298デフォルトの名無しさん
2008/08/19(火) 00:57:210299デフォルトの名無しさん
2008/08/19(火) 00:59:360300デフォルトの名無しさん
2008/08/19(火) 01:04:25じゃう゛ぁ(java)は今をときめくニューウェーブ、時代の最先端を行く今注目のプログラミング言語です。
アプレットはIEやFF上で動作するJavaプラグインを用いた実行形態の一種です(?)
Applet/JAppletクラスを用いて作成します。
通常のJavaアプリはApplet/JAppletクラスを使いません。
0301デフォルトの名無しさん
2008/08/19(火) 01:18:53何でみんなフラッシュ使うんでしょうか。
初心者なんですけど、フラッシュの方が最先端な気がします。
0302デフォルトの名無しさん
2008/08/19(火) 01:23:00誰も本気で釣られんよ
0303デフォルトの名無しさん
2008/08/19(火) 01:28:020304デフォルトの名無しさん
2008/08/19(火) 09:41:23根っこのトコの動作が見えにくいのとでなんかやり辛いんだよなぁ
マルチスレッドが普通にできないのもめんどい
グラフィックやサウンド系の扱いが手軽なのと、プラットフォームの普及度から言うと
よっぽど複雑な処理やるんでもなければFlashでやるのがいいでしょうね
0305デフォルトの名無しさん
2008/08/19(火) 10:00:45それこそアプレット・アプリケーション・フレームワークが整備されればいいのかな。スウィングと同じように。
0306デフォルトの名無しさん
2008/08/19(火) 10:20:260307デフォルトの名無しさん
2008/08/19(火) 10:32:260308デフォルトの名無しさん
2008/08/19(火) 16:34:14ボタンを押されるたびに、たとえば"A"という文字を表示するxとy座標を変えて行きたいのですが、
public void actionPerformed(ActionEvent e){
if(e.getSource() == btn){;
x+=20;
y+=20;
repaint();
}
}
とすれば、g.drawpaint("A",x,y)がリペイントされて、ボタンを押されるたびにx,yが20ずつずれて表示されると思っていたのですが
最初に押したときはxとyが20ずつ動いたのですが連続してボタンを押しても変わることはありませんでした。
押すたびにずれるようにするにはどうすればいいでしょうか?
よろしくお願いします。
0309デフォルトの名無しさん
2008/08/19(火) 16:39:470310デフォルトの名無しさん
2008/08/19(火) 17:03:31class MyFrame extends Frame implements ActionListener{
Button btn;
int x = 50,y=50;
public MyFrame(String title){
setTitle(title);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
}
public void paint(Graphics g){
btn = new Button("ボタン");
btn.addActionListener(this);
add(btn);
btn.setBounds(120,200,90,30);
g.drawString("A",x,y);
}
public void actionPerformed(ActionEvent e){
if(e.getSource() == btn){
x=x+20;
y=y+20;
repaint();
}
}
}
これはフレームになっていますが、基本的にかんな感じです。
0311デフォルトの名無しさん
2008/08/19(火) 17:06:570312デフォルトの名無しさん
2008/08/19(火) 17:32:02有難うございました。
0313デフォルトの名無しさん
2008/08/19(火) 17:59:230314デフォルトの名無しさん
2008/08/19(火) 18:13:30Object クラスを表す Class クラスのリテラル
new Object().getClass() と同値
0315デフォルトの名無しさん
2008/08/19(火) 18:52:33�dクス
0316デフォルトの名無しさん
2008/08/19(火) 19:08:49String型の配列に入れる事は出来たのですが、Char 型に変換することができませんでした。以下は私のソースプログラムです。
public class Main{
public static void main(String[] args){
List<String[]> list =new ArrayList<String[]>();
String cell[]=new String[1000];
try{
FileReader fr =new FileReader("test.txt");
BufferdReader bf =new BufferedReader(fr);
String st =null;
while((st= bf.readLine())!=null){
String[] line=st.split("");
list.add(line);}
for(String[] values: list){
for(String value: values){cell[i]=value;i=i+1;}}
}catch(IOException e){}}}
0317デフォルトの名無しさん
2008/08/19(火) 19:37:16Stringオブジェクトからcharを取り出す方法があれば良いのかな
> char java.lang.String.charAt(int index)
それから、BufferedReader を使うと改行が消えるのでご注意あれ。
0318デフォルトの名無しさん
2008/08/19(火) 19:39:190319デフォルトの名無しさん
2008/08/19(火) 21:19:330320316
2008/08/19(火) 21:23:121行しか読み込むことができません。バッファを使っているせいかとも思ったのですが、バッファを消すとエラーになってしまいます。
public class Main{
public static void main(String[] args){
List<String[]> list =new ArrayList<String[]>();
Char cell[]=new Char[1000];
try{
FileReader fr =new FileReader("test.txt");
BufferdReader bf =new BufferedReader(fr);
String st =bf.readLine();
for(int i=0;i<100;i++){
cell[i]=st.charAT(i);
System.out.print(cell[i]);}
}catch(IOException e){}}}
0321デフォルトの名無しさん
2008/08/19(火) 22:15:130323デフォルトの名無しさん
2008/08/19(火) 23:23:47BufferedReader reader = new BufferedReader(new FileReader("test.txt"));
StringBuffer buffer = new StringBuffer();
int c;
while ((c = reader.read()) != -1) {
buffer.append((char) c);
}
reader.close();
char[] array = buffer.toString().toCharArray();
0324320
2008/08/19(火) 23:39:07一文字ずつを一つ一つの配列に入れたいです。100文字あったら100個の配列に入れるようなイメージです。
ソースプログラムありがとうございます。書いてある事はある程度理解できたのですが、分からないところもありました。
System.out.print(array); と加えたのですが、何も表示されず(´・ω・`)という顔をしてしまいました。
何を出力すれば良かったのでしょうか
0325デフォルトの名無しさん
2008/08/19(火) 23:42:03System.out.println(Arrays.toString(array));
0326325
2008/08/19(火) 23:48:01試してみたら普通に出たorz
test.txtの中身がないとか?
0327320
2008/08/20(水) 00:00:25よろしければソースを丸ごとコピペしたいので、貼り付けて貰えませんか?
一番最初の宣言からです。
0328デフォルトの名無しさん
2008/08/20(水) 00:15:03どーぞ
http://rg550.hp.infoseek.co.jp/cgi-bin/joyful/img/403.zip
0329320
2008/08/20(水) 00:31:02ありがとうございます。できました!
とても助かりました。
宣言のところで、いつもchar array []としていたのですが、char [] arrayも同じなんですね。
0330デフォルトの名無しさん
2008/08/20(水) 00:34:33というより、後者が推奨。
0331デフォルトの名無しさん
2008/08/20(水) 00:40:09その割にはmainはちゃんと後者で書いてるのね。
いちおうこれでもいけるけど main(String args[])
0332デフォルトの名無しさん
2008/08/20(水) 01:01:49int[][] array;
int[] array[];
int array[][];
0333デフォルトの名無しさん
2008/08/20(水) 01:34:300334デフォルトの名無しさん
2008/08/20(水) 01:51:38A-B-C
のように継承関係にある場合CloneableをAにつけてそのあとどうすればいいんでしょうか?
public Object cloneをAに実装し、それをB、Cでもオーバーライドする?
0335デフォルトの名無しさん
2008/08/20(水) 01:58:35class A implements Coneable {
@Override
public Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException e) {
ポイントはAでsuper.clone();をしっかり呼ぶこと、浅いコピーでいいならこれだけでよい。
0336デフォルトの名無しさん
2008/08/20(水) 02:19:550337デフォルトの名無しさん
2008/08/20(水) 02:46:02クラスBとCはどうすればいいのでしょうか?
0338デフォルトの名無しさん
2008/08/20(水) 02:55:57class A implements Cloneable {
public Object clone() {
try {
A a = (A) super.clone();
// ディープコピーのための追加ロジック
return a;
B C にもディープコピーのための追加ロジックが必要なら同じようclone()をoverrideして
super.clone() をよび、それから追加ロジック。
必要ないならそのまま継承すればいい。
0339デフォルトの名無しさん
2008/08/20(水) 12:11:55javaの教科書(SJC-P対応)的な本と、Effective Javaという本を紹介してもらいました。
教科書的な本は読み終わりましたので、次のステップに向かいたいと思います。
何か良い本があれば教えていただきたいので、よろしくお願いします。
僕の考えている弱点、問題意識としては
1:コレクションやマルチスレッド処理の仕組みはわかるが、実際の使い道がイメージできない。
→実践的なプログラムのサンプルが読みたい。
2:英語直訳のような長文は苦手で頭に入らない。
→なるべく簡潔な日本語で、図を用いて説明してもらえると有難い。
という二点があります。
0340デフォルトの名無しさん
2008/08/20(水) 12:20:37プログラムを実行するたびに、セットは同じ要素は一つしか入らないはずなのに、
同じ要素が何個も一つにセットに入ったり、一つだけ入ったりしたんだけど。
なぜですか?
TreeSetにしても同じような症状でした。
でもCopyOnWriteArraySetにしたら同じ要素は一つしかありませんでした。
どうしてかおしえてください。
0341デフォルトの名無しさん
2008/08/20(水) 12:22:49再現する具体的な例を。
0342デフォルトの名無しさん
2008/08/20(水) 12:25:53再現する例はコードが長くなるので出せません。
0343デフォルトの名無しさん
2008/08/20(水) 12:27:270344デフォルトの名無しさん
2008/08/20(水) 12:47:190345デフォルトの名無しさん
2008/08/20(水) 12:49:05実践的なコードはWebでたくさんあるし、しかも説明つきだから自分の足使ったら?
0346デフォルトの名無しさん
2008/08/20(水) 13:00:13残念ながら、現在、諸事情であまりパソコンをいじれる状態にないのです。
それから、本に線を引いたりして叩き込まないと頭に入らないタイプでして。
0347デフォルトの名無しさん
2008/08/20(水) 13:03:01じゃあ諦めろ
0348デフォルトの名無しさん
2008/08/20(水) 13:04:16キレやすい若者ですね。
0349デフォルトの名無しさん
2008/08/20(水) 13:10:13結局君は、わがままな教えて君とかわりないが?
0350デフォルトの名無しさん
2008/08/20(水) 13:12:15平日の昼間っからパソコンいじってて、それも2ちゃんやってるし、嘘はいけないだろ。ニート君は金払って学校いけよw
0351デフォルトの名無しさん
2008/08/20(水) 13:19:23初心者の毛が生えたレベルでは必要な知識のイメージが漠然としているため
あまり有効ではありません。
マックに行きたい人と、何か食べ物が食べたい人では、どちらが早く目的地にたどり着き
満足する食事を得られるかということを考えてみればわかると思います。
またwebでは目次のようなものがないか、あっても未整理である場合が多く見受けられますし
索引が利用できないのも大きなデメリットでしょう。
さらにはチェックやマークが出来ないため、再度読み直した際の効率が非常に悪い。
もっと言えば、いちいちスクロール、クリックするのが非常にめんどいという欠点もあります。
ちょっとした知識だけを得ればいい中級以上の方とちがい、全体を系統立てて学びたい初心者には
大きなストレスとなるでしょう。
なんでもwebという考え方には同意できません。
>>349
最初からわがままな教えて君のつもりですけど。
>>350
いや、正直言って無職だけどさ、パソコンあるのが実家でね。行ったり来たりなわけ。
0352デフォルトの名無しさん
2008/08/20(水) 13:22:06まず目的を示してそこに向かう手段のために
本を買うわけだろ?
0353デフォルトの名無しさん
2008/08/20(水) 13:23:35private static final Logger logger = Logger.getLogger(Aclass);
}
このクラスをシリアライズするとloggerもシリアライズされるでしょうか?
loggerをデシリアライズするのはまずいと思うので、transientをつけるべきでしょうか?
0354デフォルトの名無しさん
2008/08/20(水) 13:30:33無職だから就職のために必要な最低限の知識が欲しい。
創りたいものは漠としている。
現実的ではないかもしれないが、最終的にはひきこもり向けの学習支援アプリを創りたい。
理系科目を、直感的に操作して学習できるようなアプリがいい。
セカンドライフ的な要素も付け足してオンライン予備校にしたい。
0355デフォルトの名無しさん
2008/08/20(水) 13:32:18こういう奴はキモイんだよな。なんつーか虫唾が走るっつーかwwwこういう奴はどうしたらいい?
0356デフォルトの名無しさん
2008/08/20(水) 13:35:48俺向けにチェックやマークができて再読に向いていて、
自分の欠点を把握、補強できるJAVA学習支援アプリ創ったらいいと思うよ!
ほら、行った行った。
0357デフォルトの名無しさん
2008/08/20(水) 13:59:40うええ。
今、実家にいて、
目の前のハコで調べられることを、調べないで、
初心者にはムリ!!!
とかいってんのか。
それなら、初心者とかじゃなくて、無能ってことじゃね?
0358デフォルトの名無しさん
2008/08/20(水) 14:03:11調べられることは調べてんよ。
でも本のほうが効率いい。
webは再読に向かない。
早く教えろよ。
0359デフォルトの名無しさん
2008/08/20(水) 14:06:13きみにはデザインパターンが不足してると思うから、
Java言語で学ぶデザインパターン入門
を買うといいよ。
0360デフォルトの名無しさん
2008/08/20(水) 14:13:56君の相手をするのが面倒くさい
オジサンは酒飲んで黙ってろ
0361デフォルトの名無しさん
2008/08/20(水) 14:16:35うわー、ありがとうございます。
早速カートに入れてきました。
公式ページも見てきましたが、僕の知らないことばかりで、非常に読むのが楽しみです。
0362デフォルトの名無しさん
2008/08/20(水) 14:16:55それよりも、こいつのような30代ニートにはコミュニケーションスキルの方が先だと思うw
0363デフォルトの名無しさん
2008/08/20(水) 14:21:28まだ二十代だよ。
しゃべったらボロが出るけど、しゃべらないで笑ってるからいい人扱いだぜ。
おまえらマジ役にたたねーから、俺、いつか初心者向けのJAVA学習サイト作るわ。
webはマルチスレッド、書籍はシングルスレッド。
おまえらだっていきなりwebで学んだわけじゃねーくせに。
ペッペッ!
0364デフォルトの名無しさん
2008/08/20(水) 14:22:24とかも知らないところを見ると、PCすら使えない無能な教えて君だな。きもすぎる
0365デフォルトの名無しさん
2008/08/20(水) 14:24:32無職で実家とか言って、「面接20社受けて全部落ちました。Orz」とかの無能ニートじゃねーの?(笑)
素直にJavaを教えてる学校いった方がいいよw
0366デフォルトの名無しさん
2008/08/20(水) 14:27:34>>363
まあ、まずは俺のチンコしゃぶれよ
0367デフォルトの名無しさん
2008/08/20(水) 14:38:41ん?十分ボロが出てるみたいだけど、どういうこと?
0368デフォルトの名無しさん
2008/08/20(水) 14:46:44ブルジョワプログラマーめが。
大学の奨学金もまだまだあるのに専門行けっかよ。
それに勉強は本読んだほうが早い。
>>366
throws IOExceptionだ。
サンプル集はwebにはあるが書籍はあんまり無いな。
>>367
リアルではしゃべらないで笑ってんだよ。
俺がいると職場がなごやかになるんだぜ。
webだとボロが出るよ。俺はものの考え方がおかしいからな。
今日は>>359さんみたいな聖人に出会えたからいいや。
0369デフォルトの名無しさん
2008/08/20(水) 14:49:08それ、単なるのけ者だよ。
まともなヤツは快活だからな。
0370デフォルトの名無しさん
2008/08/20(水) 14:51:15本を読めば何とかなるって、
ヤセレばキレイになるって幻想と一緒じゃね?
0371デフォルトの名無しさん
2008/08/20(水) 14:53:22ハードウエアでいうIRQみたいなのをJAVAで実装するにはどうすればいいでしょうか?
複数のI/OコンポーネントとGUIから構成されるソフトを作っているのですが、今の実装だと
全てのクラスに中核モジュールへのレファレンスを持たせて、その内部状態をI/Oイベントがあると
*I/Oモジュールから*変更させるように作っているのですが、これだと中核モジュールを変えたときに
広がる波紋が大きそうな気がして心配です。
ですから、各I/Oモジュールが何かのイベントを探知すると中核モジュールにイベントを投げて
中核モジュールのみが自らを操作するようにしたいのですが、その方法がよくわかりません。
(中核モジュールにI/Oモジュールでイベントがあったことを探知させる方法が分かりません)
ExceptionをI/OやGUIモジュールから中核モジュールに投げる方法もあるかな、と思ったのですが、
例外は例外用にとっておきたいと思います。
ご教授お願いします。
0372デフォルトの名無しさん
2008/08/20(水) 14:55:54バカとしか判定しようが無いな。
0373デフォルトの名無しさん
2008/08/20(水) 15:01:32「I/Oコンポーネント」と「I/Oモジュール」、「I/Oイベント」の関係がわからないな。
オブジェクト間のやり取りが変わるような部分を書き換えれば、影響するのは当たり前じゃね?
イベントでもメソッドの呼び出しでも変わらないだろ。
0374デフォルトの名無しさん
2008/08/20(水) 15:07:07一見、大学の奨学金もらって頑張ってるようだけど、就職活動もしないで実家にひきこもってるただの無職ニートだろ。
自尊心が高いだけの単なるナルシストなんじゃね?
0375デフォルトの名無しさん
2008/08/20(水) 15:12:060376デフォルトの名無しさん
2008/08/20(水) 15:15:29よく考えてみたら、確かにまったく変わりませんね。
さらに考えてみたらちょっとデザインを変えるだけでまったく
解決できる問題だということも分かりました。
ありがとうございます。
0377デフォルトの名無しさん
2008/08/20(水) 15:17:350378デフォルトの名無しさん
2008/08/20(水) 15:20:14Javaを教えてる講座など申し込んで短気集中か、今の時代ならHPの方も良くまとまってるページが多いですよ。
結局は、字を読むなら本と同じですし。
変に本の方に権威を立てて過信してませんか?
MSのC#とかも初心者教育に力を入れてるし、MSDNのWeb一つでまとまってるのでお勧めです!
0379デフォルトの名無しさん
2008/08/20(水) 15:22:05モラトリアム黴ってやつだな。
0380デフォルトの名無しさん
2008/08/20(水) 15:26:52ペッペッ!
一時期ちゃんと働いてたっつの。
>>378
そうですねー。
無職ですから、コストパフォーマンスを考えると、どうしても講座をうける気にはなれないんです。
でも、webはお金もかからないですし、もうちょっと柔軟に考えてみるようにします。
ちょくちょく実家に来るようにしますかね。
0381デフォルトの名無しさん
2008/08/20(水) 15:27:01間違ったこと書いてる本だって、一杯、出版されてるしな。
入門書なんか、見た目が派手なだけで完成してないサンプルとか、
本当にタイトルだけ奇抜なんてことも多いしな。
0382デフォルトの名無しさん
2008/08/20(水) 15:32:500383デフォルトの名無しさん
2008/08/20(水) 15:34:33まずは、俺のチンコしゃぶれよ。
0384デフォルトの名無しさん
2008/08/20(水) 15:47:41俺がリアルでキモかろうがキモくなかろうが、どうでもいいことだと思うんだが。
問題は今キモいことだけだろ。
なんでリアルまで心配してくれるんだ。
人間、学歴は関係ないよな。
俺はろくな努力もしないでマーチより上の国立大学に受かったために
無駄にプライドは高いんだが、実力は無いし、社会的なスキルはほとんどない。
でも、プログラマにはそういうやつも割といるって聞いたぜ。
あんたの同僚にもいるだろうよ。
>>383
そういうのは実装してないんだわ。
0385デフォルトの名無しさん
2008/08/20(水) 15:50:15俺はろくな努力もしないでマーチより上の国立大学に受かっ
0386デフォルトの名無しさん
2008/08/20(水) 15:53:56きみ、もうキモイから消えてくれないか?
大学受かったかよりも、その大学を卒業(満了)できたのかが社会では重要なんだけど。
それも君のように無能で無職なものにとってそんな肩書きは正しく「豚に真珠」じゃないか?
0387デフォルトの名無しさん
2008/08/20(水) 15:55:22Javaなんか勉強するよりC#の方がMSがバックにいるし将来の為にいいよ。
そうだ!大学院目指したらどうだろう?
0388デフォルトの名無しさん
2008/08/20(水) 16:11:480389デフォルトの名無しさん
2008/08/20(水) 16:16:330390デフォルトの名無しさん
2008/08/20(水) 16:39:58ありがとうございます。
C#はJAVAの下地があったほうがわかりやすいみたいですね。
もう少しJAVAがわかるようになったら浮気するか考えてみたいと思います。
院は嫌です。僕の大学だけかもしれませんが、院に行った友人の話によると
出世争い、研究室の私物化、ゴマすり、お粗末な博士論文など、あまり魅力的に思えません。
時間も金もないですし。
せっかくアドバイスもらってのに、スイマセン。
0391デフォルトの名無しさん
2008/08/20(水) 16:41:33それなら本なんか頼りにするよりも、間違えやすいところとかコツとかあるわけだし、手っ取り早く習得できると思うんだけど…
0392デフォルトの名無しさん
2008/08/20(水) 16:43:34総じてマイクロソフトの製品じゃないとだめだ!PHPもPerlもくそ!
Javaはもちろん一番くそ!
おまえらにお勧めの言語はAccessVBAだ。
0393デフォルトの名無しさん
2008/08/20(水) 16:47:54Microsoftはコピーライトだから駄目らしい。
あと、楽しみが人間として一番高度らしいから、楽しみでプログラミングしている奴が
最強らしいよ。
0394デフォルトの名無しさん
2008/08/20(水) 16:48:12教養の差がわかる。
0395デフォルトの名無しさん
2008/08/20(水) 16:49:000396デフォルトの名無しさん
2008/08/20(水) 16:49:25accessVBAはコピーレフトじゃないだろ。
0397デフォルトの名無しさん
2008/08/20(水) 16:52:25そういうお前は、ひきこもり兼ニートじゃないの?
お前の魅力に関係なく、無職より院生のほうがましw
0398デフォルトの名無しさん
2008/08/20(水) 16:54:000399デフォルトの名無しさん
2008/08/20(水) 16:54:540400デフォルトの名無しさん
2008/08/20(水) 17:00:00ソフトで言えばJavaよりVB(旧VB)の方が使いやすくて便利なのが多いんだけど…
0401デフォルトの名無しさん
2008/08/20(水) 17:15:22あまりパソコン触れないとかいいつつも、2chだけは欠かさずチャックしてるしww
0402デフォルトの名無しさん
2008/08/20(水) 17:17:24何言ってんだよ。鼻くそはオマエ
0403デフォルトの名無しさん
2008/08/20(水) 17:21:55File filelist[] = folder.listFiles();
for (int i = 0; i < filelist.length; i++) {
filelist[i].delete();
}
folder.delete();
0404デフォルトの名無しさん
2008/08/20(水) 17:25:04vbのselectは入力のチェックとか楽チンだった。
0405デフォルトの名無しさん
2008/08/20(水) 17:29:290406デフォルトの名無しさん
2008/08/20(水) 17:33:40俺がパソコンを触れないのは、パソコンのある実家とそれ以外を行き来してるからだ。
前にさりげなく匂わしてるあるはずだが。
実家に来たら三十秒に一回ペースでにちゃんねるとチェックしているが、チャックはしてない。
0407デフォルトの名無しさん
2008/08/20(水) 17:38:23オマエ、12時から張り付いてるぞ。
>>339
>339 名前:デフォルトの名無しさん[sage] 投稿日:2008/08/20(水) 12:11:55
0408デフォルトの名無しさん
2008/08/20(水) 17:39:040409デフォルトの名無しさん
2008/08/20(水) 18:13:12君はオープンソースに触れるとフリーの世界がなんとなく分かるんじゃないか?
ジャバもオープンソースだけど、君は英語ぐらい読めるんだろうから、
java.sun.com, java.net辺りから探って無料の英語の教科書を読んでみな。
それと早く自分用のパソコンぐらい買え。
0410デフォルトの名無しさん
2008/08/20(水) 18:27:47なんか自分の学歴を自慢してるようだけど、何の勉強してきたんだろうねw
0411デフォルトの名無しさん
2008/08/20(水) 18:41:22実家に行かなきゃPC無いような初学者なら
買うのは本じゃなくて、まずPCでしょ?ボロくて良いからさ
いくら本読んだところで畳水練だよ?
0412デフォルトの名無しさん
2008/08/20(水) 18:49:450413デフォルトの名無しさん
2008/08/20(水) 18:52:290414デフォルトの名無しさん
2008/08/20(水) 19:00:07TreeMap<Object, Object> map = new TreeMap<Object, Object>(System.getProperties());
0415デフォルトの名無しさん
2008/08/20(水) 19:14:11そうじゃないのよ。質問なくてヒマだから相手してるだけww
0416デフォルトの名無しさん
2008/08/20(水) 19:37:150417デフォルトの名無しさん
2008/08/20(水) 19:47:47つつけばドタバタ踊るんだから、それなりに面白いよ
0418デフォルトの名無しさん
2008/08/20(水) 20:16:32ありがとうございます。早速のぞいてみました。
英語は珍しい単語以外はわかりそうです。
あとは根気があれば・・・って感じですね。
>>417
レスがつくのって楽しいですよね。
レスがつく時のわくわく感に訴えるアプリが作れたらおもしろいですよね。
0419デフォルトの名無しさん
2008/08/20(水) 21:01:24★★ Java の宿題ここで答えます Part 65 ★★
http://pc11.2ch.net/test/read.cgi/tech/1212085079/830
830 名前:デフォルトの名無しさん[] 投稿日:2008/08/15(金) 08:54:52
javaって難しくない?
http://mild7070.livedoor.biz/
0420デフォルトの名無しさん
2008/08/20(水) 21:34:550421デフォルトの名無しさん
2008/08/20(水) 21:36:56貼ったから見てやったけど、バイトなんてしちゃだめだろ。
やっぱひきこもって自宅で勉強しないとさあ。
わかってないよね、こいつ。
だいたい、「世の中、裏狙い」って・・・
ITドカタに甘い汁があると思ってんのかよw
0422デフォルトの名無しさん
2008/08/20(水) 21:55:59ほら、呼んでるぞ!
0423デフォルトの名無しさん
2008/08/20(水) 22:05:260424デフォルトの名無しさん
2008/08/20(水) 22:07:54ちゃんとレスしただろ。
0425デフォルトの名無しさん
2008/08/20(水) 22:16:200426デフォルトの名無しさん
2008/08/20(水) 22:47:480427デフォルトの名無しさん
2008/08/20(水) 23:03:560428デフォルトの名無しさん
2008/08/20(水) 23:24:270429デフォルトの名無しさん
2008/08/20(水) 23:50:12玄人の人はどう思いますか。
0430デフォルトの名無しさん
2008/08/21(木) 00:08:38せっかく時間が有り余ってるんだから、Javaなんてやらずに関数型言語やったほうがいい。
それからOO言語に移行したほうが、プログラミングの筋が良くなる。
0431デフォルトの名無しさん
2008/08/21(木) 00:16:08死滅したツールなんか覚えてもな・・・
0432デフォルトの名無しさん
2008/08/21(木) 00:17:380433デフォルトの名無しさん
2008/08/21(木) 00:20:27まともな返答は返ってこないだろう
0434デフォルトの名無しさん
2008/08/21(木) 00:21:320435デフォルトの名無しさん
2008/08/21(木) 00:22:02内容はいいんだが、翻訳がカスだから、カス。
中級者は読み飛ばせるから気にならないだろうが、みっちり読みこなしていくと日本語のひどさに苛立つ。
多分、英語版のほうが読みやすい。
0436デフォルトの名無しさん
2008/08/21(木) 00:26:55この本は「JAVA哲学」を徒然と書き綴ったものであるため
内容が前後左右にぶれてしまっている印象がある。
また、読み手をあまり意識していないので、話が抽象的になりすぎて
具体的なイメージをつかみにくい。文章がくどい。
玄人の方は読み飛ばしていると思うが
「あれ、ここ、こんなに説明いらなかったんじゃないの?」っていう部分が多かったんじゃないですか?
違いますか?
0437デフォルトの名無しさん
2008/08/21(木) 00:47:53現在、あるWebアプリケーションの開発を開始しておりますが
下記の箇所で躓いております。
◆任意のパスワードを生成するメソッド
・英字(大文字、小文字)、記号、数字でランダムの組合せ
(使用不可の文字は後からでも修正できる)
・文字数は10文字で固定
上記のように製造したいのですが、知識不足の為
先に進めておりません。
是非皆さんの知恵をお貸し下さい。
0438デフォルトの名無しさん
2008/08/21(木) 00:49:37JavaにZIP形式の圧縮ファイル読み込みのStreamクラスがありますが、
パスワードが付いたファイルを読み込むにはどうしたらいいのでしょうかm(__)m
0439デフォルトの名無しさん
2008/08/21(木) 00:51:08何に行き詰まってるのかわかりませんが、乱数使えばいいと思います。
0440デフォルトの名無しさん
2008/08/21(木) 00:55:07自作するしかありません
0441437
2008/08/21(木) 01:22:28返答ありがとうございます。
乱数ですか、調べてみます。
質問に不備がありすみません。
任意のパスワードを生成するメソッドの組み方自体にも躓いております…
0442デフォルトの名無しさん
2008/08/21(木) 01:31:40特に強度や安全性を気にしないなら、こんな感じでいいんじゃないか
String s = "ABCDEFG............xyz!#$%&'0123456789"; // 使ってよい文字のリスト
Random r = new Random();
char[] password = new char[10];
for(int i = 0; i < 10; i++) {
password[i] = s.charAt(r.nextInt(s.length());
}
0443437
2008/08/21(木) 01:47:50ありがとうございます!
参考にさせて頂きます。
0444デフォルトの名無しさん
2008/08/21(木) 08:22:380445デフォルトの名無しさん
2008/08/21(木) 10:11:16それとも1つずつの処理になり、後のものは先の終了を待つまで呼ばれないのでしょうか?
0446デフォルトの名無しさん
2008/08/21(木) 10:12:220447デフォルトの名無しさん
2008/08/21(木) 12:56:02JavaってSwingとかのGuiアプリケーションの知識身に付けて実務で使われることってありますか?
それは完全に役に立たないって事は無いとは思いますが費用対効果として
JSP/サーブレットとかをずっとやってた方が役に立つのかなと疑問に思いました。
0448デフォルトの名無しさん
2008/08/21(木) 13:09:45就職先の業務内容次第じゃね?
どんな部所に配属されるかにもよる。
分からないなら好きな方やっとけばいいと思う。
0449デフォルトの名無しさん
2008/08/21(木) 13:13:26ぶっちゃけ、Javaを使うかどうかもわからないんじゃないの?
0450デフォルトの名無しさん
2008/08/21(木) 13:35:48すいません、レスありがとうございます。
一応研修期間中にSJC-P取得があるみたいなのでJavaは使うと思われます。
なんか市販のソフトって大概exeで、JavaのGuiアプリって使われてるのか疑問だったのです。
なんかいまいち業界事情がPCショップとかで売られてるソフトのイメージでしか判断出来ない感じあるのですが、
そのレス内容から判断すると一応使われる技術と考えてOKでしょうか。
0451デフォルトの名無しさん
2008/08/21(木) 14:12:26一応言っとくけど、exeってのはWindowsで「しか」使えない実行ファイル形式だからね。(wineとかは例外)
携帯アプリならJavaでGUI操作するんじゃね。(場合/キャリア/気分に依存する)
0452デフォルトの名無しさん
2008/08/21(木) 14:28:19JavaDoc の「Java RMI の仕様」の「3.2 リモートメソッド呼び出しにおけるスレッドの使用法」
を読む限り、呼び出される側は並列処理になり得ると書いてある。
なのでスレッドセーフになるようにすべきだそうだ。
0453デフォルトの名無しさん
2008/08/21(木) 14:28:470454デフォルトの名無しさん
2008/08/21(木) 14:41:10そっかぁ、exeがwin依存なのは知ってたのですが、
winユーザが大半だから利益追求が絡む企業での実務では使われないものかと思ってました。
WIN32APIとか.NETと比べてJavaの方が整備されてて好きなので
swingの需要があるようで良かったです。
残りの一年こっちをやろうと思います、ありがとうございました!
0455デフォルトの名無しさん
2008/08/21(木) 15:43:160456デフォルトの名無しさん
2008/08/21(木) 15:45:190457デフォルトの名無しさん
2008/08/21(木) 15:50:19よっぽど役に立つよ
0458デフォルトの名無しさん
2008/08/21(木) 16:00:40まあ、Javaなら後からでも覚えられるし、VCは使いづらいし覚えなくちゃいけないことも多いからな・・・
0459デフォルトの名無しさん
2008/08/21(木) 18:43:59役に立たなかったなあ。なぜかというと、SwingGUIがあまりにももっさりしていたから。だいぶ昔の話だけど。
0460デフォルトの名無しさん
2008/08/21(木) 18:45:100461デフォルトの名無しさん
2008/08/21(木) 18:47:28___
/ ⌒ ⌒\
/ (⌒) (⌒) \ でも、個人的にはVCの方がすきなんだお!
/ ///(__人__)/// \
| u. `Y⌒y'´ |
\ ゙ー ′ ,/
/⌒ヽ ー‐ ィヽ
/ rー'ゝ 〆ヽ
/,ノヾ ,> ヾ_ノ,|
| ヽ〆 |´ |
0462デフォルトの名無しさん
2008/08/21(木) 18:49:45/ _ノ \
| ( ●)(●)
. | (__人__) Awtって必要ないだろ…
| ` ⌒´ノ 常識的に考えて…
. | }
. ヽ }
ヽ ノ \
/ く \ \
| \ \ \
| |ヽ、二⌒)、 \
0463デフォルトの名無しさん
2008/08/21(木) 19:41:26ランダムで再開というのを見ると特定のスレッドのみ再開させるというのは不可能なんでしょうか
または他のメソッドで上記に似たような事をできないでしょうか
まだまだ初心者なので変なことを聞いているようであればすいません
ご教授よろしくお願いします
0464デフォルトの名無しさん
2008/08/21(木) 20:11:38起きたスレッドは、呼ばれたのが自分じゃなかったら、waitで二度寝する
0465デフォルトの名無しさん
2008/08/21(木) 21:00:50javaからどのボタンが押されたか判定することはできないのでしょうか?
0466デフォルトの名無しさん
2008/08/21(木) 22:45:22Webなのか?Swingなのか?
0467デフォルトの名無しさん
2008/08/21(木) 23:03:20byte b=6;
byte c=a+b;
これって3行目がc=5+6なら通るのになんでエラーになるんでしょうか?
大きいintの値を小さいbyteに入れようとするから普通は一行目からエラー
だけれども、それだと面倒だからコンパイラが親切で自動でキャストしてくれるから
一二行目はエラーにならないみたいな話を本で見たので、それが行われないって話だと思うのですが、
byte+byteはint以下の数値を扱う式はintとして評価される、というルールから
intになるので自動でキャストしてくれそうだと思ったのですが。
0468デフォルトの名無しさん
2008/08/21(木) 23:06:40byte a=5;
byte b=6;
byte c;
c=a+b;
ってやってみたら?
変数の初期化部分で変数は使えないんだと思う。
0469デフォルトの名無しさん
2008/08/21(木) 23:11:29うろ覚えだが、byte a = 999999; とかだとコンパイルエラーにならなかったか?
0470デフォルトの名無しさん
2008/08/21(木) 23:23:54コンパイルできないけどorz
0471デフォルトの名無しさん
2008/08/21(木) 23:28:26二項数値昇格で int型の値に昇格されるはずだから、
>>468 がコンパイルできたら言語仕様に反する。
0472デフォルトの名無しさん
2008/08/21(木) 23:37:410473468
2008/08/21(木) 23:42:38byte a=5;
byte b=6;
byte c;
c = (byte)(a+b);
でどうだ。
今回はコンパイルも通った(gcjだけど)から、大丈夫だ。
0474デフォルトの名無しさん
2008/08/21(木) 23:43:390475468
2008/08/21(木) 23:48:57byte b=6;
byte c = (byte)(a+b);
なんだ、これでもうまくいくのか。
流石だなJava.
0476467
2008/08/21(木) 23:50:32手元の本で関連がありそうな所を漁ると、
(1)
「char(数値を格納した)、short、byteのint以下の範囲の数値を格納する型は、
たとえその型の範囲内の数値でもその式を評価すると全てintになる。」
(例)
byte a=1;
byte b=2;
a+b ←byteの範囲内でもint型
(2)
「short,char,byteのint以下の範囲の数値を格納する型に数値を格納する際、
数値はint型として評価されるが簡略化のためキャストを行わなくても
コンパイラが自動的にキャストする」
(例)
byte a=1; ←コンパイラが自動で(byte)1としてくれるので有効。
この二つの記述があり、それを踏まえてbyte a=1+2は(2)により有効なのですが、
これが467で書いたように変数で行うとコンパイラの自動キャストが働かないのが謎なのです。
もちろん>>473の方が書いてくれたように自分で明示的にキャストすれば通るのですが。
0477デフォルトの名無しさん
2008/08/21(木) 23:56:16リテラルをキャストするのと、変数をキャストするのは意味が違うんじゃないの?
0478デフォルトの名無しさん
2008/08/21(木) 23:58:420479デフォルトの名無しさん
2008/08/22(金) 00:01:04http://java.sun.com/docs/books/jls/third_edition/html/conversions.html#190806
0480デフォルトの名無しさん
2008/08/22(金) 00:05:52これは少しググって見つけるの難しいだろw
0481デフォルトの名無しさん
2008/08/22(金) 00:10:25b = (byte)200;
System.out.print(b);
とすると-56と表示されるんですがなぜその値なのでしょうか?
それから、longをfloatに型変換するのがなぜ拡大変換なのですか?
二つともビットは同じだと思うんですが・・・。
0482デフォルトの名無しさん
2008/08/22(金) 00:14:27なるほど、ありがとうございます!
自動的な変換は制限があったのですか、、byteとかはストリームからの読み取りとかでは使ってましたが
こういう数値を足したりするのをbyteではあまりやらないので勉強になりました。
お世話になりました。
0483デフォルトの名無しさん
2008/08/22(金) 00:15:412の補数表現。
long より float の方が表現できる値の範囲が広いから。
あとビット数はfloat32bitでlongが64bit
0484デフォルトの名無しさん
2008/08/22(金) 00:18:48どうすればいい?
一応インストールはしたつもり
0485デフォルトの名無しさん
2008/08/22(金) 00:20:340486デフォルトの名無しさん
2008/08/22(金) 00:20:42intは32ビット。byteが16ビット。入りきらないのはちょんぎっちゃう。
32ケタあった1と0の組み合わせが無理やり16ケタにちょんぎられちゃうわけだから
変な数になっちゃう。
0487デフォルトの名無しさん
2008/08/22(金) 00:29:03確実にインストールはできています。しかし コマンドプロンプトで java -versionで
バージョン確認はできるのですが、javacは表示されません。
0488デフォルトの名無しさん
2008/08/22(金) 00:31:080489482
2008/08/22(金) 00:33:30>>481
Javaではダウンキャストの際に単純に上回るビットを左から削除するだけ。
200は内部的には00000000 00000000 00000000 11001000で
byteにキャストすると下8桁の11001000だけが残る。
この値は単純に見ると200だがbyteは符号付きの型なので
一番左の1bitを+-の判定に使う。
そのためこの値は二の補数で表現された-56という数と解釈される。
(全ビットを0と1反転させた後1加えると56になる。)
ちなみにbyteの格納範囲は-127〜127。
0490デフォルトの名無しさん
2008/08/22(金) 00:36:250491デフォルトの名無しさん
2008/08/22(金) 00:41:29表示されるのが
'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。
d:\java>set path
Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Program Files\In
tel\DMIX;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\
Common Files\Roxio Shared\DLLShared\;C:\Program Files\Common Files\Roxio Shared\
DLLShared\;C:\Program Files\Common Files\Roxio Shared\9.0\DLLShared\;C:\Program
Files\Common Files\Sony Shared\FeliCaLibrary;C:\Program Files\Edy\Edy Library;C:
\Program Files\Java\jre1.6.0_07\bin
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
d:\java>
0492デフォルトの名無しさん
2008/08/22(金) 00:48:250493デフォルトの名無しさん
2008/08/22(金) 00:53:36パスを通すとは?491で表示した、set Pathで表示されたら問題ないはずではないのですか?
0494デフォルトの名無しさん
2008/08/22(金) 00:54:37jre
jdk
0495デフォルトの名無しさん
2008/08/22(金) 00:55:34jreじゃなくてjdk。
jreはJava Runtime Enviroment
jdkはJava Development Kit
0496デフォルトの名無しさん
2008/08/22(金) 00:59:010498デフォルトの名無しさん
2008/08/22(金) 01:17:330499デフォルトの名無しさん
2008/08/22(金) 01:17:39そのjdkのフォルダがあるなら、ね。
なかったら、Java SE Development Kit (通称JDK)をインストールする必要がある。
0500デフォルトの名無しさん
2008/08/22(金) 01:20:51http://java.sun.com/javase/ja/6/download.html の
JDK 6 Update 7をダウンロードしました。
0501デフォルトの名無しさん
2008/08/22(金) 01:23:08本の初めのほうに書いてある。
0502デフォルトの名無しさん
2008/08/22(金) 01:25:480503デフォルトの名無しさん
2008/08/22(金) 01:32:37JavaはC言語とかと違ってコンパイルすると中間コードが生成される。
これは君が普段使うソフトの形式であるexeと違ってコンピュータは直接実行出来ない。
これを動かすのに必要なのがJRE。
Javaで開発されたソフトを使うにはユーザはこれを入れなければならない。
逆に、ユーザは自分の環境に合ったJREを入れることで、exeと違ってMacだろうがLinuxだろうが実行出来る。
JDKっていうのは、君が書いたソースコードを中間コードにするためのもの。
javacってのはこのJDKに含まれるコマンド。
0504デフォルトの名無しさん
2008/08/22(金) 01:34:000505デフォルトの名無しさん
2008/08/22(金) 01:40:03無事コンパイルと実行ができました。HelloWorldが表示されました。
JDK 6 Update 3とJDK 6 Update 5がインストールされてたからおかしくなっていたのですかね?
0506デフォルトの名無しさん
2008/08/22(金) 01:56:55Javaだと評価順についてはどういうカッコの付け方になるんでしょうか。
0507437
2008/08/22(金) 02:15:47String s = "ABCDEFG............xyz!#$%&'0123456789"; // 使ってよい文字のリスト
Random r = new Random();
char[] password = new char[10];
for(int i = 0; i < 10; i++) {
password[i] = s.charAt(r.nextInt(s.length());
}
使ってよい文字に条件を付けたいのですが、
英字大文字、英字小文字、数字、記号の各文字種を、
必ず一文字は結果に出せるようにしたいです。
例:An?)9j1aQ0
各文字種ごとに変数を作る事になると思いますが、
その先の記述をどうしたら良いかで悩んでおります。
各文字種を配列に入れてからシャッフルするとか、ですかね?
大変お手数ですが、皆さんの知恵をお借りしたいです。
宜しくお願いいたします。
0508デフォルトの名無しさん
2008/08/22(金) 02:32:361. 最初に各文字種をパスワードに1文字ずつ追加する。
2. 不足文字数分をパスワードに追加する。
3. パスワードをシャッフル。
0509デフォルトの名無しさん
2008/08/22(金) 07:41:21CountDownLatch でも使え。
0510デフォルトの名無しさん
2008/08/22(金) 08:36:55ぐぐるまでもなく、言語仕様読めば解決。
要するに読んでないだけ。
>>507
それJavaとか関係ない段階の質問だと思うんだけど。
0511デフォルトの名無しさん
2008/08/22(金) 10:59:22スレタイ読める?
ていうかお前のレスの方がスレ違いなんだよカス
0512デフォルトの名無しさん
2008/08/22(金) 11:08:32こんなバカが回答ほしがってるのかw
寝言は>>1ぐらい読んでから言えクズw
0513デフォルトの名無しさん
2008/08/22(金) 11:14:33こういうカスが作ったゴミ暗号なんか、どうせ作ってもすぐ解読されるからほっとけ。
0514デフォルトの名無しさん
2008/08/22(金) 11:15:47ランダムで生成し、生成した文字列に対して文字種ごとに存在をチェックすればOK
全種類が入ってなければ再生成。
この手の乱数による抽出では出現率の偏りに注意しましょう。
まあ、全種類が必ず入ってる時点である種の偏りがあるわけだが...
0515デフォルトの名無しさん
2008/08/22(金) 11:16:17こういう煽りたいだけの奴は放置しろよ
0516デフォルトの名無しさん
2008/08/22(金) 14:23:11コマンドプロンプトでひらがな入力をするには、どうすればいいのでしょうか
0517デフォルトの名無しさん
2008/08/22(金) 14:29:070518デフォルトの名無しさん
2008/08/22(金) 14:29:11昔は、こうやって変換してたんですね
0519デフォルトの名無しさん
2008/08/22(金) 17:52:400520デフォルトの名無しさん
2008/08/22(金) 17:55:52僕は、人見知りの臆病者なんですが、性欲は人一倍あります。
いつも暇があるとエロいことばかり考えてしまいます。見てはいけないと思いつつも
エロサイトをしょっちゅうのぞいてしまいます。余計、エロくなります。。
職場でも町でも、女の人と顔があうと絶対エロいにやけ顔になってしまいます。
職場の人から「うわ〜、○○さん、いやらしい顔してる〜」とかいわれて、しょっちゅう胃がいたくなります。
まじめな顔をしようと思ってもにやけ顔になってしまいます。。
ほんとに苦痛でしょうがないです。どうしたらいいでしょうか?
0521デフォルトの名無しさん
2008/08/22(金) 17:57:20Javaをやればいいと思う。
0522デフォルトの名無しさん
2008/08/22(金) 17:57:29講義中に「これあんまり使わない」みたいな事を言われました。
その先生だけかもしれませんが、なぜでしょうか?
構文が気持ち悪いとか、if使えばいいから とかしか思いつかないんですが。
まさか「これ(お前ら程度のレベルでは)あんまり使わない」って事だったんですかね。
0523520
2008/08/22(金) 17:59:230524デフォルトの名無しさん
2008/08/22(金) 18:03:250525520
2008/08/22(金) 18:04:150526デフォルトの名無しさん
2008/08/22(金) 18:04:21オブジェクト指向を極めればswitchなど使わなくなる
0527デフォルトの名無しさん
2008/08/22(金) 18:08:06一般論としては「使わないほうがいい」ということはない。
その言葉の前にいろいろ前提がなかったかな?
クラスの説明中ならswitchより多態(ポリモーフィズム)をということかもしれない。
0528520
2008/08/22(金) 18:08:27また、どうしても見てしまうので、指導を受けたからといって治るものでもありません。
どうしたらいいんでしょうか?
0529デフォルトの名無しさん
2008/08/22(金) 18:38:24その先生の意図はわからんけど、switchが適切な場面で必ずswitchを使
うようにしても、ifに比べたら頻度はものすごく少ないと思う。
0530デフォルトの名無しさん
2008/08/22(金) 19:46:31悩んだらソープへ行け!って偉い人が言ってた。
>>522
絶対使うなってわけじゃないが、今後分岐が増えていく予定がすこしでもあるなら
switch 以外の方法を使ったほうが保守性が高いので。
0531デフォルトの名無しさん
2008/08/22(金) 20:04:55あるCの入門書で、continueの説明に「めったに使われない」と書いてあって、
釈然としなかった経験がある。
初学者に教える時に、教師個人の余計な感想は邪魔かも。
0532522
2008/08/22(金) 20:14:56また次の講義で質問してみますね。
>>528
朝起きていっぺんぬいてから出勤するっていう人の書き込みをみたことがあります。
その人によると、明鏡止水だそうです。
0533デフォルトの名無しさん
2008/08/22(金) 20:18:31古いバージョンだと、switchの判定式に整数しか使えなかったから
その名残では
0534デフォルトの名無しさん
2008/08/22(金) 20:54:47いつのまにか整数以外が
使えるようになったのかと思っちゃったじゃないか。
http://java.sun.com/docs/books/jls/third_edition/html/statements.html#14.11
ひょっとしてenumのことか?
0535デフォルトの名無しさん
2008/08/22(金) 21:08:01ほしいー
0536デフォルトの名無しさん
2008/08/22(金) 21:34:42switchを使ってる場合、例えば、
switch (obj.type) {
case A: 処理a(obj); break;
case B: 処理b(obj); break;
}
こうなるが、typeの種類が増えると、obj.typeで判定している部分をかたっぱしから直してまわらんといかん。
typeで分類する代わりにクラスで分類し、各処理をオーバーライドしたメソッドで定義すると、そもそもswitch等で分岐する必要がなくなる。
obj.処理();
だけでおk。種類が増えたときも、呼び出し側はほとんど変更する必要がない。
オブジェクト指向言語の最大の利点は、「お前は誰だ」と確認するためのifやswitchを書かなくて済むようになること。
0537デフォルトの名無しさん
2008/08/22(金) 21:35:29enum使えば解決じゃない?
0538デフォルトの名無しさん
2008/08/22(金) 21:48:550539デフォルトの名無しさん
2008/08/22(金) 22:08:020540デフォルトの名無しさん
2008/08/22(金) 22:16:19C++クライアント −DCOM→ MTS(スレッド管理・トランザクション管理) → SQLServer or MSMQ
と
C#クライアント -.NETリモーティング→ 独自サーバ → SQLServer or MSMQ
というシステムがあるのですが、これをクライアント以外Javaに置き換えたいです。
どのようなアプリケーションが代用になるのでしょうか?また、クライアントだけ
Windows上のC++ or C#とした場合、サーバのJavaとの接続はできるのでしょうか?
0541デフォルトの名無しさん
2008/08/22(金) 22:25:09main() に渡されたオプションの解析とかに使えそう
0542デフォルトの名無しさん
2008/08/22(金) 22:45:34それってやるとしたらequalsの展開になるのかな?
それとも個数によっちゃTreeMapかなんかで実装するのかな
わくわくだわー
0544デフォルトの名無しさん
2008/08/22(金) 23:24:38ここにいらっしゃるのは殆どがJAVAをある程度学ばれている方だと思いますが、
これまで培ってきたJAVA関連の知識や技術が3日後には全て消え失せるとします。
もう一度初めから学び直さなければなりません。
あなたに与えられた期間は半年です。
半年経てばJAVAプログラマの新入社員として働いていかなければなりません。
ただ、今のあなたが3日後のあなたに一つだけ残せるものがあります。
それは今のあなたの考えるJAVA学習の方法論です。
どう勉強するべきかどの本で勉強するべきか・・・。
その半年間の予定表を立てて下さい。
では私はもうこれで寝ますので3日後くらいまでにはご回答をお願いします。
0545デフォルトの名無しさん
2008/08/22(金) 23:31:25半年もあればだいたい大丈夫だろ
やる気さえあれば ← これ1番重要
0546デフォルトの名無しさん
2008/08/22(金) 23:45:570547デフォルトの名無しさん
2008/08/22(金) 23:50:22全く無い状況からだとすれば、仕様を覚えてから使えるようになるまでには
ある程度かかるだろうとは思う
0548デフォルトの名無しさん
2008/08/22(金) 23:50:310549デフォルトの名無しさん
2008/08/22(金) 23:52:33まあ、数年放置してるといつのまにかバージョンが上がったり、
使ってたメソッドが推奨されないメソッドに認定されてたりするから、
似たような状況はたまにあるね。
勉強?要らない要らない。
せっかく忘れたんだから他の言語勉強する。
0550デフォルトの名無しさん
2008/08/23(土) 01:11:440551デフォルトの名無しさん
2008/08/23(土) 01:40:12Java関連の知識って、どこまでよ?
フレームワーク?イディオム?ライブラリの知識?言語仕様?
それともオブジェクト指向って何?って所まで消えるのか?
変数って何ですか?、とか、インターネットってどういう仕組み?とか
コンピュータって何ですか?まで行っちゃうとか
そこが分からないと答えようがない
0552デフォルトの名無しさん
2008/08/23(土) 01:53:34多分この業界で仕事しようと思わないとおもわれ
0553デフォルトの名無しさん
2008/08/23(土) 03:36:090554540
2008/08/23(土) 05:58:25ここには下流工程の人しかいないですよね
板違いでした
0555デフォルトの名無しさん
2008/08/23(土) 07:15:48もうここには決して来ないで下さい。
0556デフォルトの名無しさん
2008/08/23(土) 07:24:31「付けたし付けたしで今まで頑張ってました」って感じだなw
0557デフォルトの名無しさん
2008/08/23(土) 07:29:590558540
2008/08/23(土) 07:31:49数十万の顧客抱えてるから今すぐJavaに移行なんて無理だから、試してみただけだしw
0559デフォルトの名無しさん
2008/08/23(土) 07:39:53イベントハンドラで "<" を含む文字列を取得しようとしているのですが
"<" がタグ開始の文字列として認識されてしまいエラーが発生してしまいます。
どなたか解決法をご存知でしたらご教授下さい。お願いします。
0560デフォルトの名無しさん
2008/08/23(土) 07:42:38では、顧問料いくら出せるんですか?
0561デフォルトの名無しさん
2008/08/23(土) 07:44:48もう君の自慢話しはいいからwwさっさと消えてくれないか?
0562デフォルトの名無しさん
2008/08/23(土) 07:49:11質問が抽象的すぎてイマイチ分かり辛いんですけど、WindowsならMS製品で固めた方がいいですよ。
0563デフォルトの名無しさん
2008/08/23(土) 08:05:370564デフォルトの名無しさん
2008/08/23(土) 08:19:13w書いててわらってもうたw
0565564
2008/08/23(土) 08:21:57HTTPも知らないのか540はw
0566540
2008/08/23(土) 08:25:46システム作ってる奴いるか?今のシステムに不満はないんだけど、OSがWindowsって
ところだけは、顧客は拒否反応示すからさ。
ロジックは簡単だから、Javaはよくしらないけど、定番のアプリケーションサーバ
とデータベースとMQでシステムをリプレイス出来たら、そういう顧客にも有効かと
思ってさ。
0568デフォルトの名無しさん
2008/08/23(土) 08:27:290569デフォルトの名無しさん
2008/08/23(土) 08:41:53それならwindows一筋で頑張ってください
0570970
2008/08/23(土) 08:43:59そしたらプロトコルなに使ってるの?
0571デフォルトの名無しさん
2008/08/23(土) 08:48:27クライアントはどのくらいいじっていいのよ?
いっそDCOM−CORBAブリッジでも使うかい。
0572540
2008/08/23(土) 08:51:26登りは.NetRemotingで下り(配信)はTCP/UDP直だよ
昔はDCOMだったけど
それにしても、Webサービスは遅すぎる。発注だそうと思ったときにはもう
相場変わってるっちゅうの
LANで計測しても、独自プロトコルの10倍以上通信してるからな
0573970
2008/08/23(土) 08:52:250574デフォルトの名無しさん
2008/08/23(土) 08:53:010575970
2008/08/23(土) 08:54:29なんか大切なデータ送ってそうだけど。
0576540
2008/08/23(土) 08:54:43ありがとうございます。
開発コストは考えてません。営業がそれなりの金額で売ってきてくれるので。
重視してるのは、クライアント(C#)-サーバ(Javaサーブレット)で今までの
パフォーマンスが出るのかですね。
で、それにともなってJavaの混沌としているアプリケーションサーバとデータベース
とその他諸々からどれを選択していいのかと
0577デフォルトの名無しさん
2008/08/23(土) 09:02:00インターネットだとCOM+やCORBAやRMI(IIOP)はプロトコル的にきつい気もするが。
0578デフォルトの名無しさん
2008/08/23(土) 09:23:32毎回コネクション張るのが問題?
0579デフォルトの名無しさん
2008/08/23(土) 09:27:17マ板でやれ
0580デフォルトの名無しさん
2008/08/23(土) 09:55:16その上でWebサービスとか使えば遅いわな。
0581デフォルトの名無しさん
2008/08/23(土) 10:13:10うーん。わかんね。ヘッダーとかがあるからってこと?
自分でTCPで通信するのとそんなに大差あるのかな?
HTTPサーバーが遅いってこと?
それなら自分で作ったHTTPサーバーが例えばIISのパフォーマンスを
超えられるの?
0582デフォルトの名無しさん
2008/08/23(土) 10:19:30そもそもXML文書のタグ以外に<>を含めてはダメだろ。
&lt;か&gt;に書き換えるべきじゃね。
0583デフォルトの名無しさん
2008/08/23(土) 10:25:07>数秒遅れたら致命傷
まず初めに専用回線を引くべきじゃね?
OS関係無いと思うし、そんな性能を求められるところってほいほいリプレイスしない方がいいと思う。
0584559
2008/08/23(土) 10:42:44解決できました。ありがとうございます。助かりました。
0585デフォルトの名無しさん
2008/08/23(土) 10:43:260586デフォルトの名無しさん
2008/08/23(土) 11:06:29多分、実際は無職なので問題ない。
0587デフォルトの名無しさん
2008/08/23(土) 12:03:30GUIの部品使うと別スレッドが色々たってるみたいで
try〜catch で拾えないんですけど、
どうにもならないんですかね?
0588デフォルトの名無しさん
2008/08/23(土) 12:57:48Thread#setDefaultUncaughtExceptionHandler
Thread#setUncaughtExceptionHandler
で捕まえるとか。
0589587
2008/08/23(土) 13:50:14ありがとうございました。
0590デフォルトの名無しさん
2008/08/23(土) 14:28:44Thread#setUncaughtExceptionHandler
がほしいぜ。
0591デフォルトの名無しさん
2008/08/23(土) 14:33:41ファイルを読み込みバイト配列で一括変換しているせいかメモリ不足に陥ってしまいます。
元ファイルをInputStreamに出力ファイルをOutputStreamにと
ダイレクトに暗号化する方法ってないのでしょうか。
8kbyteといった固定単位でファイルを読み込み、暗号化して暗号化後のサイズとデータを書き込みことで、メモリ不足を引き起こさず暗号・復号化は出来そうですが・・
0592591
2008/08/23(土) 14:54:36FileInputStreamにCipherInputStreamをラップしたら出来ました。
m(__)m
0593デフォルトの名無しさん
2008/08/23(土) 16:06:43TCP/UDPってなんだよwボロでてんだよww
それもTCP遅いって、確かにTCPとUDPを上回る通信はあるけど、
こいつはMS一筋でよっぽど世の中知らない奴だと思わない?
お前はもう来るな
0594デフォルトの名無しさん
2008/08/23(土) 16:34:060595デフォルトの名無しさん
2008/08/23(土) 16:40:470596デフォルトの名無しさん
2008/08/23(土) 17:07:43でも最近の証券会社やFXの会社の発注少し遅いよね
0597デフォルトの名無しさん
2008/08/23(土) 18:33:250598デフォルトの名無しさん
2008/08/23(土) 18:52:28現世代Java。
話題としてこっちじゃないか?
0599デフォルトの名無しさん
2008/08/23(土) 18:59:29「JAVAソフトウェアがロードできません」と出ました
JAVAのサイトに行ってダウンロードすると「JAVAのバージョン確認」と出るだけで
何も状況が変わりません
誰かいいアドバイスをください
0600デフォルトの名無しさん
2008/08/23(土) 19:06:00tmp.charAt(0)=="(".charAt(0)
tmp.length()=="(".length()
が上からfalse.true.trueとなるんだがバグかなんか?
0601デフォルトの名無しさん
2008/08/23(土) 19:08:38正しい動作だわ、そりゃ
詳しく知りたきゃ、equalsでググれ
0602デフォルトの名無しさん
2008/08/23(土) 19:08:490603599
2008/08/23(土) 19:13:450604デフォルトの名無しさん
2008/08/23(土) 19:18:060605デフォルトの名無しさん
2008/08/23(土) 19:18:210606デフォルトの名無しさん
2008/08/23(土) 19:19:45JDKの動作要件を満たしていればできる。
0607デフォルトの名無しさん
2008/08/23(土) 19:20:24高性能PCじゃないとeclipse動かないよ
0608デフォルトの名無しさん
2008/08/23(土) 19:50:59仕事で1年間Javaを使って開発してる奴にこの前
if( strHoge == "true" ) で 同じにならないんだけど
って質問来た時はマジで、はぁぁお前1年間Java使っといてそれはないだろう!って思ったよ。
それ以降、漏れはそいつのこなす仕事は何一つ信用しなくなったよ・・orz
1年間Java使ってましたっていう自己申告じゃなく、ホントに1年間開発してたんだよ・・どんなソース書いていたんだか・・
0609デフォルトの名無しさん
2008/08/23(土) 20:29:19あまり細かいこと考えずに作ると、
プロキシの検索が走ったり
Expect-100で一往復待ったり
設定によってはKeepAlive使わずに毎回接続したり
その上でWebサービスとなると
SOAPエンコードでかなりサイズが膨れ上がり
XMLのシリアライズ、デシリアライズ等々割と重い処理が入る
0610デフォルトの名無しさん
2008/08/23(土) 21:07:220611デフォルトの名無しさん
2008/08/23(土) 21:11:16最近の夏だと大ほらふきが出没しているから、たぶんそいつだろうw
それと嘘はだめだ。一生信用されない。
0612デフォルトの名無しさん
2008/08/23(土) 21:15:10俺は単に横槍っていうかHTTPとWebサービスの一般的な話してるだけで
元のやつととは全然関係ないんだが、それでもこれは俺が突っ込まれてるのか??
0613デフォルトの名無しさん
2008/08/23(土) 21:23:260614デフォルトの名無しさん
2008/08/23(土) 21:30:320615デフォルトの名無しさん
2008/08/23(土) 21:47:33コンピュータって何ですかレベルだとしたらどうでしょう?
無理でしょうか?
パソコンを使って遊ぶことが出来る(YouTube見たり、共有ソフトでファイル集めたり、
集めたファイルを扱ったり・・・でもフォルダなら分るけどディレクトリだと難しく感じるレベル)けど、
仕組みはさっぱり分らないというレベル。
HTTPってそう言えば何の略?みたいなレベルだとして。
情報系の大学の学部を出てるわけでも、専門学校を出てるわけでもなく、
普通の私立の文科系を卒業してる程度の人間だと仮定すると絶望的???
0616デフォルトの名無しさん
2008/08/23(土) 22:07:09ゼロから初めて半年でも
0617デフォルトの名無しさん
2008/08/23(土) 22:11:11まあ、あくまで一例だが、
知っている情報系の中小企業だと、Excelしか使ったことの無い文系の新卒でも、3ヶ月で基本情報処理技術者が取れるように訓練される。
無論、当人の努力も大事だし、実際の試験で落第したなら、合格するまで昇給をストップされる。
0618デフォルトの名無しさん
2008/08/23(土) 22:44:48C言語は2日で終わってC++を1週間、Java、Web、DBと容赦なく進むスケジュール表を事前に渡されるので
研修開始までに独習して一通りマスターしておくのが普通らしいな
0619デフォルトの名無しさん
2008/08/23(土) 22:45:31基本情報処理技術者って落ちる奴居るのか?
0620デフォルトの名無しさん
2008/08/23(土) 22:51:41interface Hoge {}
class HogeImpl implements Hoge{}
現在Hoge.classのみがあって(Hogeのインスタンスは存在しない)、HogeImplがHogeを継承しているかどうかを調べる方法はあるのでしょうか?
Hogeのインスタンスが存在しているのであれば
Hoge.class.isInstance(hogeImplInstance);
で確認できるのですが、Classのみでの確認手段が分かりませんでした。
newInstanceでインスタンス作って確認するしかないのでしょうか?
0621デフォルトの名無しさん
2008/08/23(土) 23:00:000622デフォルトの名無しさん
2008/08/23(土) 23:00:06てかClassのJavaDoc読んだ?
あと、それを確認しなければならない状態があるのかよ。
Hoge hoge = new HogeImpl();
と書けばコンパイルエラーになるだろ、implしてなければ
0623デフォルトの名無しさん
2008/08/23(土) 23:00:34Class#isAssignableFrom(Class)
0624デフォルトの名無しさん
2008/08/23(土) 23:06:25統計発表されてるだろ
0625デフォルトの名無しさん
2008/08/23(土) 23:11:03>>622
一通り読んだつもりだったのですが読み落としてました。
本当に申し訳ないです。
0626デフォルトの名無しさん
2008/08/24(日) 00:05:43C言語2日って、それならやらない方がマシじゃねかw
こんな連中しかいないからWacsなんていう糞フレームワークしか作れないんだな(ワラ
0627デフォルトの名無しさん
2008/08/24(日) 00:14:21どう考えても無謀だしな。
0628デフォルトの名無しさん
2008/08/24(日) 00:22:570629デフォルトの名無しさん
2008/08/24(日) 01:50:13http://www.i.u-tokyo.ac.jp/edu/course/ci/pdf/2007_8_ci_practice_all.pdf
(沢山ある、それぞれの頂点が辺で結ばれていたり、いなかったりする)
私は、2次元配列を用いて、cell[結合元の番号][結合先の番号]=0or1のようにして表して解こうとしたのですが、
なかなかうまくいきません。このような問題の本流というか、良いやり方はどのようなものでしょうか?
また、上記urlの問題の最後の方にある頂点から別の頂点への距離を求めるものがあるのですが、
私には遺伝的アルゴリズムを用いた手法しか思い浮かびません。しかし、大学院入試のプログラミング問題程度で
そのようなものが要求されるのは考えにくいので、私が何か見落としている気がします。
問題の解釈すら違うかもしれません。どのようなレスでもいいので、お願い致します。
0630デフォルトの名無しさん
2008/08/24(日) 02:18:34すまん。
まったくわからん。
ただ、おれにわかるのはスレ違いということくらい。
0631デフォルトの名無しさん
2008/08/24(日) 02:32:43たぶんお勉強にこだわりすぎなんじゃないですか?
0632デフォルトの名無しさん
2008/08/24(日) 02:36:29Q2-1はつながってる先を順に調べて、ツリー状に調べてゆくってことかな?
Q4は、
辺を追加していく順序に就いて悩んでいるのだろうけど、
冒頭に、「N は変えるが同じ頂点対の並びを利用する. その場合, N 番目以降の頂点対は無視する.」ってあるから、
G3は単にファイル上の登場順にN番目までの辺で出来たグラフ。
残りもその順で追加して行くだけでは?
0633デフォルトの名無しさん
2008/08/24(日) 03:21:50IBM Javaのクラスが見つかりませんとエラーが発生しました。
java.lang.ClassNotFoundException: com.ibm.crypto.provider.DESKey
暗号化キーは、シリアライズ化してあったものをObjectInputStreamでよみこもうとした時に上記エラーが発生しました。
回避策わかる方いますでしょうかm(__)m
0634633
2008/08/24(日) 03:58:06異なるVM間で復号化できましたm(__)m
0635デフォルトの名無しさん
2008/08/24(日) 04:01:350636デフォルトの名無しさん
2008/08/24(日) 11:27:140637デフォルトの名無しさん
2008/08/24(日) 17:21:29その次にファイルを実行出来ません。
どうすればいいでしょうか?
0638デフォルトの名無しさん
2008/08/24(日) 17:41:14ここでどぞ
0639デフォルトの名無しさん
2008/08/24(日) 18:53:410640デフォルトの名無しさん
2008/08/24(日) 19:17:260641デフォルトの名無しさん
2008/08/24(日) 19:25:320642デフォルトの名無しさん
2008/08/24(日) 23:39:58勉強してる中でパッケージの内容からどうしても先に勧めません。
あるプログラムの頭にpackage パッケージ名;と打ち込んだのですが、
"予想されたパッケージと一致しません"と言われうまく起動してくれません。
どういった名前を付ければ予想されたパッケージになるのでしょうか。。
教えてください。。
0643デフォルトの名無しさん
2008/08/25(月) 00:15:44パッケージが「package foo;」だったら、そのソースファイルはfooディ
レクトリの中にある必要がある、のが原因かもしれない。
0644デフォルトの名無しさん
2008/08/25(月) 03:22:20FlowPanel.add(Image)は対応していないのでImageIconを作って画像を入れようと色々やっているのですが上手く行きません。
Toolkit tk = Toolkit.getDefaultToolkit();
Image img = tk.getImage("C:\\~~.jpg");
ImageIcon icon = new ImageIcon(img);
JLabel label = new JLabel(icon);
こんな感じでラベルをつくってレイアウトに流し込んでいるのですが・・・
0645デフォルトの名無しさん
2008/08/25(月) 04:17:07ImageIconには画像ファイルのパスを引数にとるコンストラクタがあるから
ファイルから画像を読み込んでJLabelのアイコンに設定するならImageを作らなくても
JLabel label = new JLabel(new ImageIcon("C:\\~~.jpg"));
でいけるよ
0646デフォルトの名無しさん
2008/08/25(月) 16:07:06下記のコードでdをcのListに値を入れるのってどうやればいいんですか?
import java.util.*;
public class bbb{
public static void main(String [] args){
List <aaa> c = null;
aaa d = null;
d.setNo(1);
d.setName("test");
c.add(d);
System.out.println(c.get(0).getNo());
System.out.println(c.get(0).getName());
}
}
class aaa {
int no;
String name;
public aaa(){
}
public int getNo(){ return no;}
public void setNo(int newNo){no = newNo;}
public String getName(){return name;}
public void setName(String newName){ name = newName;}
}
0647デフォルトの名無しさん
2008/08/25(月) 16:14:35List <aaa> c = new ArrayList<aaa>();
aaa d = new aaa();
0648デフォルトの名無しさん
2008/08/25(月) 16:28:06new 試したけどいまいち書き方がわかりませんでした。
ありがとうございました。
0649デフォルトの名無しさん
2008/08/25(月) 16:38:27機能的には、デスクトップをプログラムでキャプチャしてそのままAVIなどの動画に変換して出力したいのですが、
Java言語ではどのようにすれば可能なんでしょうか?
0650デフォルトの名無しさん
2008/08/25(月) 16:40:49Vectorから適当なスクリーンキャプチャをダウンロード・インストールして、
Javaサイドから定期的に呼び出す。
というのではいけませんか?
0651デフォルトの名無しさん
2008/08/25(月) 16:45:13JAI入門書のサンプルプログラムをコンパイルすると下のようなエラーが出ます。
パッケージ javax.media.jai は存在しません。
JAIもJDKのPathの設定のようなものがいるのでしょうか?
0652デフォルトの名無しさん
2008/08/25(月) 16:47:47要るんだと思いますよ。
0653デフォルトの名無しさん
2008/08/25(月) 17:28:36どう設定すればいいか教えてください。おねがいします
0654デフォルトの名無しさん
2008/08/25(月) 17:44:14入門書なら設定の仕方とかは書いていると思いますよ。
もし書いていないならその本は捨てても構わないと思いますよ。
0655デフォルトの名無しさん
2008/08/25(月) 19:36:02それにオプションパッケージのreadmeにも書いてある。
JMFのインストーラ版なら決め打ちで勝手にパス通すが。
0656デフォルトの名無しさん
2008/08/25(月) 22:04:55いい本ですね。
0657デフォルトの名無しさん
2008/08/25(月) 22:24:130658デフォルトの名無しさん
2008/08/25(月) 22:31:380659デフォルトの名無しさん
2008/08/25(月) 22:32:54例が簡潔でわかりやすい
細かいフォローもばっちり
デザインパターンをそれぞれ関係づけてあって覚えやすい
基礎から実践に近づくために必要な知識が効率的に吸収できます。
0660デフォルトの名無しさん
2008/08/25(月) 22:42:540661デフォルトの名無しさん
2008/08/26(火) 00:16:440662泣きそうです
2008/08/26(火) 13:35:45取得の仕方がイマイチ分かりません。
いろいろ試したのですが、コンパイルとかエラーになって・・・
どなたか、取得の仕方を教えて下さい。
-----------[testXml.xml]------------------------------------
<?xml version="1.0" encoding="UTF-8"?>
<config>
<ptn1_data1>
<element key="a1" val="a01"/>
<element key="a2" val="a02"/>
</ptn1_data1>
<ptn2_data2>
<element key="x1" val="x01"/>
<element key="x2" val="x02"/>
</ptn2_data2>
</config>
--------------------------------------------------------
0663泣きそう
2008/08/26(火) 13:47:24import javax.xml.parsers.*;
import org.w3c.dom.*;
class testXml
{
public static void main(String args[]) throws Exception
{
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new FileInputStream("testXml.xml"));
Element root = doc.getDocumentElement();
walk(root);
}
0664泣きそう
2008/08/26(火) 13:49:43{
for(Node ch = n.getFirstChild();
ch != null;
ch = ch.getNextSibling()){
if(ch.getNodeType() == Node.ELEMENT_NODE){
System.out.println("ELEMENT_NODE:"+ch.getNodeName());
walk(ch);
}
else if(ch.getNodeType() == Node.TEXT_NODE && ch.getNodeValue().trim().length() !=
0){
System.out.println(" TEXT_NODE:"+ch.getNodeValue());
} else {
System.out.println( ・・・・key1を出力したいです);
System.out.println( ・・・・valを出力したいです);
}
}
}
}
0665泣きそう
2008/08/26(火) 13:50:39けど、どなたか教えて下さい。
お願いします
0666デフォルトの名無しさん
2008/08/26(火) 14:18:49Document doc = db.parse(in);
NodeList l = doc.getElementsByTagName("element");
if (null == l) {
System.out.println("タグ element はありません。");
} else {
System.out.printf("タグ element は %d 個あります。\n", l.getLength());
for (int i = 0; i < l.getLength(); ++i) {
NamedNodeMap n = l.item(i).getAttributes();
System.out.printf("\t[key=%s],[val=%s]\n"
, n.getNamedItem("key").getNodeValue()
, n.getNamedItem("val").getNodeValue());
}
}
0667デフォルトの名無しさん
2008/08/26(火) 14:43:34xmlスレ行って出直して来い。
0668デフォルトの名無しさん
2008/08/26(火) 15:30:04コンパイルエラー
ttp://javafaq.jp/S172.html
0669デフォルトの名無しさん
2008/08/27(水) 00:15:27普通はこんなかんじ。
indexはいらんかも。
<config>
<ptn_data index="1">
略
</ptn_data>
<ptn_data index="2">
略
</ptn_data>
</config>
0670デフォルトの名無しさん
2008/08/27(水) 07:37:12自分で作った実行ファイルがあります(文字コードMS932)→Test.class
これをbatファイル(文字コードEUC-JP)で実行します。
batファイルの中身は
java Test 日本語パラメータ
で、batファイル自体は文字コードEUC-JPです。
この場合引数で受け取った"日本語パラメータ"という文字列を
プログラム内ではMS932として、文字化けせず"日本語パラメータ"として処理を行いたいのですが
どうすればいいでしょうか?
まず、batファイルをダンプして"日本語パラメータ"という文字列を見た場合と
args[0]をarg[0].getBytes()してダンプ出力した結果が違うのです。
ためしにarg[0].getBytes("EUC-JP")してもこれもまた上とはまた違った結果になります。
もう、引数で渡されてきた時点でデータが壊れているのでしょうか?
0671デフォルトの名無しさん
2008/08/27(水) 07:59:53コマンドラインはプラットフォームのデフォルトエンコーディングで扱
われると思う。batファイルとか書いてあるってことはWindowsかね。で
あれば、コマンドラインはms932で書かないと化ける。
ところで「実行ファイルの文字コードがms932」ってどういう意味?
0672デフォルトの名無しさん
2008/08/27(水) 08:02:34echo 日本語パラメータ
だけの内容のbatファイルをEUC-JPで作成して試してみ?
たぶん引数の前、コマンドラインシェルが解釈した段階で化けてると思うぞ。
0673デフォルトの名無しさん
2008/08/27(水) 11:33:28文字化けを起こして出来ません。
PrintWriter out = response.getWriter();
//String val = request.getParameter("kanji");
//byte[] byteData = val.getBytes("Shift_JIS");
//val = new String(byteData, "Shift_JIS");
out.print(val);
コメントアウトを外すと文字化けを起こします。
表示先は文字コードはShift_JISであっている筈なんですが・・・
単純に両方Shift_JISをピンポイントで指定してるのに
なぜ化けるのでしょうか?バイトコードへ変換して戻す処理の中で何かデータの欠損でも起きているのでしょうか?
0674デフォルトの名無しさん
2008/08/27(水) 12:30:060675デフォルトの名無しさん
2008/08/27(水) 12:43:561. response の PrintWriterオブジェクトの文字コードは何なのかしら?
2. request は正しい文字コードで入力を読み取ってるかしら?
3. 674 のように Shift_JIS外の文字は入ってないかしら?
4. response で出力した先の文字コードは 1 と同じかしら?
0676デフォルトの名無しさん
2008/08/27(水) 15:35:15データベースに日付を管理するresettime・・・というテーブルがあります。
そのテーブルにはtimeというdate型のカラムがあり2008-08-27という値が格納されています。
んでソースです。
public void checkDate() {
Date now = new Date();//今日の日付
String sqlIndex = "select * from resettime";
try {
db.connect();//データベースに接続する
ResultSet rs = db.executeQuery(sqlIndex);//Statementのと同じ機能
rs.next();
if(now.after(rs.getDate("time")//今日の日付のはず)) { //※問題の箇所
String[] sql = new String[2];
sql[0] = "delete from popularmovieinfunnymoviechannel";
sql[1] = "update resettimeinfunnymoviechannel set time = '"+now+"'";
db.addBatch(sql);
db.executeBatch();//Statementのと同じ機能
}
}
catch(SQLException e) {
}
finally {
db.disConnect();//データベースを切断する
}
}
問題の箇所がtrueとなってしまい上手くいきません。バグっぽい箇所が在ればご教授下さい
jreは6_7です。
0677デフォルトの名無しさん
2008/08/27(水) 15:38:43そのDBのdate型が時刻を格納してないなら00:00:00になるはず
今日の現在時刻と今日の00:00:00を比較したらどうなるかというと・・・
0678デフォルトの名無しさん
2008/08/27(水) 15:43:11引数で情報を渡すはなしでお願いします。
0679デフォルトの名無しさん
2008/08/27(水) 15:51:05request.setCharacterEncodingでSHIFT_JISを有効にする。
あと、Tomcat5.0以降のバージョンでGetの処理すると、
デフォルトの動作でsetCharacterEncodingが無効になるから注意。
server.xmlの変更で対処して。そのあたりはググれば出てくる。
0680デフォルトの名無しさん
2008/08/27(水) 15:55:34jre変えてみまッス。
0681デフォルトの名無しさん
2008/08/27(水) 16:05:40java.sql.Dateも一緒
Javadoc見てみ、時間をミリ秒で表すって書いてある
http://java.sun.com/javase/ja/6/docs/ja/api/java/sql/Date.html
0682デフォルトの名無しさん
2008/08/27(水) 16:20:080683デフォルトの名無しさん
2008/08/27(水) 16:24:51java より先に小学生レベルの時刻の概念から学んだ方がいい
0684デフォルトの名無しさん
2008/08/27(水) 16:28:500685デフォルトの名無しさん
2008/08/27(水) 16:55:150686デフォルトの名無しさん
2008/08/27(水) 17:11:31nowが現在の時刻なんだから、それよりもafterな時刻なんて
存在しない……だから、”問題の箇所”は常にtrueになって当たり前。
0687686
2008/08/27(水) 17:13:43現在の時刻よりも、未来の時刻は存在しないから
”問題の箇所”は常にtrueって言いたかった……
0688デフォルトの名無しさん
2008/08/27(水) 21:01:43同年同一日ならafterでもfalseが帰る。
0689680
2008/08/27(水) 21:20:11このまま行ってたら大きな誤解を持ったまま行くところでした。thx。
0690デフォルトの名無しさん
2008/08/27(水) 21:30:00JTabbedPane jtp = new JTabbedPane();
jtp.addTab(component);
のように書いた時に、後々componentを取得する方法はあるで
しょうか。
ご教授お願いします。
0691690
2008/08/27(水) 21:40:35取得したいのはcomponentではなくて、
スクロールペインの中のJPanelでした。
宜しくお願いします。
0692デフォルトの名無しさん
2008/08/27(水) 22:16:21public void setGoods(ArrayList<String> goods){
this.goods = goods;}
public void setNumber(ArrayList<String> number){
this.number = number;}
このようにしてBeanに格納したArrayListを、
<logic:iterate id="name" name="Bean">
<bean:write name="name" property="number" />:
<bean:write name="name" property="goods" /><br>
</logic:iterate>
上記のJSPで出力しようとしてもエラーが出ます。
<logic:iterate id="name" name="Bean" property="number">
<bean:write name="name" />
</logic:iterate>
<logic:iterate id="name" name="Bean" property="goods">
<bean:write name="name" />
</logic:iterate>
こういった書式だと値の表示は可能ですが、当然出力位置が変ってしまいます。
number1:goods1
number2:goods2
number3:goods3
最終的にこういう表示をさせるにはどういった書き方をすればいいでしょうか。
0693デフォルトの名無しさん
2008/08/27(水) 23:17:58((JScrollPane)component).getViewport().getView()
0694デフォルトの名無しさん
2008/08/28(木) 01:24:16ありがとうございます。
お陰で無事解決しました。
0695688
2008/08/28(木) 09:17:370696デフォルトの名無しさん
2008/08/28(木) 10:11:00java.rmi.server.RemoteServer.getClientHost() でガマンしろ。
0697デフォルトの名無しさん
2008/08/28(木) 11:33:18Javaの勉強をしようと思い
「JDK 6 Update 7」をダウンロードしてインストールしてみました。
環境変数を設定した後に、バージョンが正しいか確認してみたのですが、
C:\>java -version
java version "1.4.2_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_03-b02)
Java HotSpot(TM) Client VM (build 1.4.2_03-b02, mixed mode)
と表示さてれました。
ただし、
C:\WINDOWS\system32>java -version
java version "1.6.0_07"
Java(TM) SE Runtime Environment (build 1.6.0_07-b06)
Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)
だと、きちんと「JDK 6 Update 7」がインストールされているぽいのですが・・・
これってちゃんとインストールされた状態になったのでしょうか?
0698デフォルトの名無しさん
2008/08/28(木) 11:36:50あと javac -version も
0699デフォルトの名無しさん
2008/08/28(木) 11:45:50レスありがとうございます。
C:\>javac -version
javac version "1.6.0_07"
C:\WINDOWS\system32>javac -version
javac version "1.6.0_07"
でした。
1.4.2_3の削除についてですが、
プログラムの追加と削除に無く、
レジストリ内も検索してみたのですがそれらしいのが無いため
どこから削除すればよいでしょうか?
0700692
2008/08/28(木) 11:54:23ありがとうございました。
0701デフォルトの名無しさん
2008/08/28(木) 11:55:18環境変数の PATH を確認する。
恐らく "C:\jdk1.4.2_03\bin" みたいなのが含まれているはず。
0702デフォルトの名無しさん
2008/08/28(木) 15:08:43貴方のほらふきの癖を治せば、少しは友達が増えると思います。
0703デフォルトの名無しさん
2008/08/28(木) 16:32:37ゲームを起動すると
ログイン画面→どのゲームを選ぶかの選択画面→ゲームの画面
と画面を入れ替えていきたいのですが、どうやって処理すればいいでしょうか?
やはりカードレイアウトを使うしかないのでしょうか?画面の切り替えには・・・
0704デフォルトの名無しさん
2008/08/28(木) 16:50:41while文を回して配列に格納した多くのデータを、
終了後にファイルに出力するにはどうするのが一番効率的でしょうか?
ファイルの入出力がよくわからなくて…よろしくお願いします。
0705デフォルトの名無しさん
2008/08/28(木) 17:06:04update-alternativeっていうコマンドでやる。
PATHには入ってないんじゃないかな?
javaのパスを直接指定する人も珍しいだろうし。
とりあえず気休めだが、
JAVA_HOMEをいじっておけ。
0706デフォルトの名無しさん
2008/08/28(木) 17:58:51効率なんか気にせず作ってみる
だいたい気にするほど遅くないことが多い
実際に気になるほど遅かったらそのときに訊くといい
0707デフォルトの名無しさん
2008/08/28(木) 18:01:26古いコンポーネントをremoveして新しいコンポーネントをaddすることもできるよ
0709デフォルトの名無しさん
2008/08/28(木) 19:30:56ありがとうございます。removeで取り除くことを忘れてました。。
カードレイアウトとどちらが良いんでしょう・・・
0710デフォルトの名無しさん
2008/08/28(木) 19:32:27ありがとうございます。removeで取り除くことを忘れてました。。
カードレイアウトとどちらが良いんでしょう・・・カードは重くなりそうな印象で
0711デフォルトの名無しさん
2008/08/28(木) 19:35:010712デフォルトの名無しさん
2008/08/28(木) 23:13:00印象で選択するのは危険。
実測してみればいい。
0713デフォルトの名無しさん
2008/08/28(木) 23:39:43Javaでチャット機能作る場合は一人に1スレッド設計しか無理なの?
サーバからのメッセージも随時受け取らないとダメだし
0714デフォルトの名無しさん
2008/08/29(金) 00:06:320715デフォルトの名無しさん
2008/08/29(金) 00:55:570716デフォルトの名無しさん
2008/08/29(金) 01:31:120717デフォルトの名無しさん
2008/08/29(金) 01:43:05Parentクラスを継承するChildクラスを定義して下記コードを記述しました。
List<? extends Parent> list = new ArrayList<Child>();
list.add(new Parent());
上記コードでコンパイルエラーが出ます。
型を見るとadd()の引数がnullになってました。
きっとadd()しちゃいけないから引数の型がnullなんでしょうけど、
理由がよくわかりません。教えてくだしあ。
0718717
2008/08/29(金) 01:53:34list.add(new Parent());
じゃなくて
list.add(new Child());
でした。どっちにしろ結果は同じなんですけどね。
0719デフォルトの名無しさん
2008/08/29(金) 02:02:59?
0720デフォルトの名無しさん
2008/08/29(金) 03:21:38何度書いたか分からんが、ジェネリクスは静的解決、キャストは動的解決。
List<? extends Parent>
という宣言を書いたからオカシイ。
そもそも、宣言部分の代入式のほうで、<Child> としているではないですか。
何故、List<Child> と書かないのですか?
0721717
2008/08/29(金) 03:26:41Eclipseでの話となりますが・・・
「list.」までを入力するとメソッド一覧が出てきますよね?
そこでaddの定義を見ると、add(null arg0)となっているんです。
addをCTRL+左クリックで表示されるクラスファイルエディターでも確認できます。
0722デフォルトの名無しさん
2008/08/29(金) 03:38:10VMの実装が複雑になるから?
0723デフォルトの名無しさん
2008/08/29(金) 03:53:440724デフォルトの名無しさん
2008/08/29(金) 04:10:33List<? extends Parent>
には、Parent を継承したクラス Child1 や Child2 などを用いた
List<Child1> や List<Child2> などが代入されているかもしれない。
これらが同時に安全に add できるものは、
どんな型にもキャストできる null しかない。
0725デフォルトの名無しさん
2008/08/29(金) 09:03:12この場合1コアあたり1スレッドなんていう動作になるんでしょうか?
もしそうだとすればnコアでn未満のスレッドを動かしたときどうなるのか非常に気になりますが。
0726デフォルトの名無しさん
2008/08/29(金) 10:10:19Sun の Java VM であればネイティブスレッドなので 1 コア 1 スレッドで動くことができる。
というか、1 コアが 1 スレッドしか動かせないと思ってないか?Intel だって Hyper Threading
で 1 コア 2 スレッド動かせるし、Sun の Niagara 3 にいたっては 1 コア 16 スレッド(1 CPU
16 コアなので全体で 256 スレッド)動くぞ?
> もしそうだとすればnコアでn未満のスレッドを動かしたときどうなるのか非常に気になりますが。
別に気にならないだろ。普通に動くだけだが、何か変な妄想してないか?
空いてるコアは別の仕事するだけだ。
0727デフォルトの名無しさん
2008/08/29(金) 10:22:071コア当たり何スレッドの処理をするんだろうか?
Javaプログラムだと5スレッドかもしれないし、100スレッドかもしれない
しかし、これだと処理されないスレッドが発生し、さらに
他のスレッドも待ち状態のままになり、見かけ上ではフリーズしたのと同じだ
これを回避するためにPentium4のHT技術が開発されたんだな
Intelすげえという電波ですねわかりません
0728デフォルトの名無しさん
2008/08/29(金) 14:55:48シングルCPU時代のスレッドは基本的に待機スレッド。
ビジースレッドの並列処理で処理効率をあげるような手法はマルチじゃないと意味はないが、
基本的にIOやイベント待ちでスレッドは止まっているものだ。
それからHTは微妙でビジースレッドの並列処理向きじゃないんだよな。
0729デフォルトの名無しさん
2008/08/29(金) 15:13:40Servlet 作ってて困っているのだけど、
スレッドID ってスレッドが動いてる時に突然変更されることってありえる?
0730デフォルトの名無しさん
2008/08/29(金) 15:17:10ない
ってJavadocに書いてあるよ
0731デフォルトの名無しさん
2008/08/29(金) 16:00:090732デフォルトの名無しさん
2008/08/29(金) 20:56:38死屍累々ってほどでもないが、すでにそういうチップは作られていて全く普及して無い。picojavaとか。
そもそも Java の byte code 自体がハードで実装するには不向きな内容だし。
昨今は実行時プロファイリングでホットスポットを解消するほうが実行速度が上がるし。
0733デフォルトの名無しさん
2008/08/29(金) 21:24:02それこそsin[x]なんかはソフトウェア(ライブラリ)で実装するもんだろうな。
つまり、java bytecodeはハードでは不向きという考えは古い考えじゃないの?
君みたいなゴミにとってはこれぐらいの話しすらついて来れないんだろうけどww
0734デフォルトの名無しさん
2008/08/29(金) 21:26:140735デフォルトの名無しさん
2008/08/29(金) 21:53:26おまえはどこに行っても相手にされないし無能なやつだな
0736デフォルトの名無しさん
2008/08/29(金) 23:41:58どうやって適切なエンコーディングで読むのでしょうか?
Javaのライブラリを使用すれば、自動的に適切なエンコーディングで読んでくれるものがあるのでしょうか?
0737デフォルトの名無しさん
2008/08/29(金) 23:47:19それは結構面白いかも知れない。
戦国時代に生まれたかった。
そして戦場で野垂れ死にしたかった。
0738デフォルトの名無しさん
2008/08/30(土) 00:14:47聞きかじった最先端の雑記を偉そうに語るのは、先生じゃなくても無能なサルでも出来るけど、お前のタイプはどっちだ?
0739デフォルトの名無しさん
2008/08/30(土) 00:27:330740デフォルトの名無しさん
2008/08/30(土) 00:29:47不可能です。
あきらめてあてずっぽやるか、人間さまに直接おたずねください。
0741デフォルトの名無しさん
2008/08/30(土) 00:39:06それよか、過去の技術や発明・基盤技術をちゃんと知ってるかどうかじゃないの?
大学でやってんならなおさらPCの歴史とかPCがたとどって来た道を知らないとねぇ。
ハードよりなら制御とか組み込みだし、ソフトよりならアルゴ・ライブラリとかコンパイラじゃないの?
すくなくとも、intelの機械語sin[x]は実際はハード内部でデコードしてハード・ロジックのライブラリを呼び出してるだけだしw
まずは自分用のCコンパイラを作れるかじゃないかな?
0742デフォルトの名無しさん
2008/08/30(土) 00:42:41針が太すぎて、ブランコ代わりに腰掛けられるよ・・・
0743デフォルトの名無しさん
2008/08/30(土) 00:43:360744デフォルトの名無しさん
2008/08/30(土) 00:46:000745717
2008/08/30(土) 00:55:29それだけじゃ>>724みたいな結論にたどり着けないっすよ先輩。
理解してる人しか理解できないヒントというか何というか。
>何故、List<Child> と書かないのですか?
Genericsの勉強中に、クラス間に継承関係があっても
List<Base> = new ArrayList<Child>();
のような事はできませんが、
<? extends Base>を使えば可能、という記述を見つけたので
試していただけです。で、add()ができないのは何故かと。
>>724
仮に可能であれば、
Child hoge = list.get(0);
とした時にChild1やChild2を返してしまいClassCastExceptionが発生するため危険、
という事でいいですか?
List<? extends Base>#get()の返り値の型をBase型として返せば
いいような気もしますが、それもやはり不都合があるんでしょうか。
0746デフォルトの名無しさん
2008/08/30(土) 01:02:260747デフォルトの名無しさん
2008/08/30(土) 01:35:25List<? extends Parent> list = new ArrayList<Child1>();
list.add(new Child1());
list.add(new Child2()); // ←ココ
0748デフォルトの名無しさん
2008/08/30(土) 02:02:49>List<? extends Base>#get()の返り値の型をBase型として返せば
List<? extends Base> list = new ArrayList<Child>();
を例えば
List<Child> childList = new ArrayList<Child>();
List<? extends Base> list = childList;
としてみましょう。
list.add(new Base());
が実行された場合、list.get() は Base インスタンスを返せるでしょうが、
childList.get() は Child のインスタンスを返せる(返すことを保証できる)でしょうか。
0749デフォルトの名無しさん
2008/08/30(土) 10:08:37SFCの『ラブクエスト』を思い出した。
「先っちょ、先っちょ、気持ち良い!」
0750デフォルトの名無しさん
2008/08/30(土) 10:43:44コプロセッサって知ってるか?
>>735
そうだな。オマエくらいしか相手にしてくれなくて人生寂しいよ。
でもオマエがこうやってレスしてくれて、マジな話ちょっとうれしかった。
無視されるのが一番辛い。煽りでもなんでも、反応してもらえてサンキュ。
0751デフォルトの名無しさん
2008/08/30(土) 12:18:080752デフォルトの名無しさん
2008/08/30(土) 12:36:16getKeyCharなら、アルファベットキーは表示されるのですが、矢印キーの時は何も表示されません。
どうしてでしょうか?
0753デフォルトの名無しさん
2008/08/30(土) 15:32:44例えば、あるボタンを押したらJScrollPaneがJTableの1行分だけ
下または上にスクロールする、というようなことは可能でしょうか。
JTable内で選択されている行を、そのボタンを押せば自動的に
ひとつ次or前の行に選択を移動させるようにしようと考えているのですが、
ScrollPaneに表示されている行内の終わりからボタンでさらに選択を奥に移動させると、
選択行は変わりますが、スクロールはしてくれないので、どうしたものかと悩んでいます。
0754デフォルトの名無しさん
2008/08/30(土) 15:42:13> KeyTypedの中でgetKeyCharを使って入力をコンソールに表示しようとしても0としか表示されません。
のgetKeyCharはgetKeyCodeの書き間違い?
なら、
> KEY_TYPED イベントの場合、keyCode は VK_UNDEFINED
なのでVK_UNDEFINED(=0)が返る。
矢印キーなどのキーコードが取りたければ、
keyTypedでなくkeyPressedやkeyReleasedでイベントを捕まえる。
0756デフォルトの名無しさん
2008/08/30(土) 16:12:37これは使えないかな?
ttp://java-house.jp/ml/archive/j-h-b/021677.html
0757デフォルトの名無しさん
2008/08/30(土) 16:58:51という文字列があって、この文字列を逆にして表示させたいです。
最終的に、System.out.println(str); で、画面には
EDCBA と表示させたいです。
文字列を引数にとって、それを反転して返すメソッドがあるのは
分かったのですが、そういうのを使わないで、配列やforをうまく使って
自力で反転させたいのです。
charAt(int index)やfor辺りで試行錯誤したのですが、どうも辿り着きません。
方法を教えてもらえませんでしょうか?
0758デフォルトの名無しさん
2008/08/30(土) 17:03:41無駄なコードを書くことに、うまい方法なんて無いのでは?
0760デフォルトの名無しさん
2008/08/30(土) 17:06:38申し訳ありません。724 や 748 の話を良く聞いてください。
お詫びに、関係しそうな記事を置いていきます。
Javaの理論と実践: Generics、了解!
ttp://www.ibm.com/developerworks/jp/java/library/j-jtp01255/index.html
0761デフォルトの名無しさん
2008/08/30(土) 17:13:23どうもありがとうございます。その先に記述されているのをヒントとして、
ほぼ完成というところまでたどり着けました。
ただ、スクロールバーの▼・▲のボタンや、バーで移動させた際に、
その移動をさせたことを検出させて、かつ移動した距離を知りたいのですが、
どうにか知る術はないものでしょうか?たびたびすいません。
0762デフォルトの名無しさん
2008/08/30(土) 17:17:03Stringオブジェクトは、作成後、状態を変更できません。
ということは、反転した Stringオブジェクトを作成する時点で、
既に反転した状態を持つ「何か」を用意する必要があります。
「何か」は、char配列でも良いですが、単に追加するだけなら
java.lang.StringBuilder/Buffer が良いと思います。
0763デフォルトの名無しさん
2008/08/30(土) 17:19:30このページの最上部のメニューバーみたいなのをウェブサイトに実装したいのでですが
何かオススメのスクリプトありませんか?
カテゴリ(ジャンル)が20個ぐらいありそれを1つのページに表示させたいです。
0764デフォルトの名無しさん
2008/08/30(土) 17:57:51>>757はそりゃアルゴリズムの問題でjavaとはあまり関係ないない。
str2=new StringBuffer().append(str).reverse().toString();
これがjava流。良くAPIを読むとサロゲートはreverseしないとかがまたいい!
0765757
2008/08/30(土) 18:13:46確かにうまくはないですね、言い方が悪くてすいません。
ただ、専用のメソッドを使うより、他のやり方を考えたら
プログラムの理解度も高まるかなーと思いまして。まだ初心者なんです。
>>762
配列を反転する方法がわからなかったので、
結局配列もStringBuilder/Bufferも使わないアナログなやり方で完成しました(´・ω・`)
ありがとうございます。
>>764
ひねくれものですかね?ヽ(´ー`)ノ
0766デフォルトの名無しさん
2008/08/30(土) 18:46:46理解したいなら、reverseのソース読むべきじゃね?
当然Mac上では問題なく動くのですが、Windowsではうまく動きません。
音意外の部分は問題ない挙動なのですが、どうにも音だけが出ません。(サンプルレート8000、ビットレート16、モノラル)
Javaのバージョンも最新です。
何か心当たりのある方、教えて頂けると助かります。お願いします。
0768デフォルトの名無しさん
2008/08/30(土) 19:15:020769デフォルトの名無しさん
2008/08/30(土) 19:32:00じゃあ、これから正直になりますので、友達になってください。
0770デフォルトの名無しさん
2008/08/30(土) 19:45:00APIドキュメント見てもいないのか?
JTable#setSelectionMode 辺りを探れ
0771デフォルトの名無しさん
2008/08/30(土) 19:49:13どんな方法にしろ、目的を達成するプログラムが書けたのならOKだ。
後は 766 の言うように他の同じことをするプログラムを見て、違いを観察するんだ。
自分で書き、他人のを読み、違いを吸収して次に生かせばいい。
0772デフォルトの名無しさん
2008/08/30(土) 20:29:55AdjustmentListenerは?
scrollPane.getVerticalScrollBar().addAdjustmentListener(new AdjustmentListener(){
int oldValue = 0;
public void adjustmentValueChanged(AdjustmentEvent e){
if(e.getValueIsAdjusting()) return;
System.out.println("Adjusted: " + (oldValue - e.getValue()));
oldValue = e.getValue();
}
});
とかで
0773デフォルトの名無しさん
2008/08/30(土) 21:00:41javaからPHPにバイナリデータを渡したいのですがデータの中に0x00が
含まれていると2byteの0x5c,0x30に置き換わってしまいます。
どなたかご教授おねがいします。
String postParams = "p1=";
byte[] byteBuf new byte[1024];
OutputStream oStream = null;
:
con = (HttpConnection)Connector.open("http://localhost/xxx.php", Connector.READ_WRITE, true);
con.setRequestMethod(HttpConnection.POST);
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
oStream = con.openOutputStream();
oStream.write(postParams.getBytes());
oStream.write(byteBuf); //←ここのDATAに0x00が含まれていると
oStream.close();
con.connect();
:
0774デフォルトの名無しさん
2008/08/30(土) 22:45:54>byte[] byteBuf new byte[1024];
コンパイル通ってるコード?
byteBufに実際は何を入れてるのか。
0775デフォルトの名無しさん
2008/08/30(土) 22:54:340776デフォルトの名無しさん
2008/08/30(土) 23:00:20それに加えて行の中でクリックしたセルだけ青い囲みがかかるんですけど
このセルの囲いをなくすことってどうやったらできるんでしょうか?
検索してもちょっとわからないので、、、ご教授ください。
0777デフォルトの名無しさん
2008/08/30(土) 23:02:31おお、ありがとうございますm(_ _)m
無事にできました。
0778デフォルトの名無しさん
2008/08/30(土) 23:12:07setCellSelectionEnabled(boolean)とかなかったっけ?
0779デフォルトの名無しさん
2008/08/30(土) 23:16:39上記例では部分抜き出しで書きましたがコンパイルは通ってます。
データは仮に
[0xff,0x10,0x00,0xff]だとしたらPHPで受け取って
そのまま送り返して調べた結果では、
[0xff,0x10,0x5c,0x30,0xff]となってます。
画像データなども送りたいと考えているのですが。
宜しくお願いします。
0780デフォルトの名無しさん
2008/08/30(土) 23:55:40プリミティブ型はスタックにデータを持ってて、ヒープ領域は使わないと認識してますが合ってますでしょうか。
それと、プリミティブ型の配列はヒープ領域を使ってて、要素0のデータへのアドレスをスタックに格納して、ヒープ領域では連続した領域に格納されているという認識で合ってますでしょうか。
あと、オブジェクト型の配列でも同様に、ヒープ領域では連続した領域に保持されているのでしょうか?
0781デフォルトの名無しさん
2008/08/31(日) 00:04:13うーむ、それだとセルのみ選択したときに色がつくようになっちゃうんですよね・・・。
逆のことをしたいんですが、何かないでしょうかね。
0782デフォルトの名無しさん
2008/08/31(日) 00:11:39>byte[] byteBuf new byte[1024];
なんて、コンパイル通る訳無いだろ。
コンパイルも通らないコードなんか載せられても何も答えられんわ
0783デフォルトの名無しさん
2008/08/31(日) 02:01:47jvm.dllの実装上の問題です。普通はそのように実装するんですけど、あなたにピッタシのAPIはByteBuffer.allocateDirectですかね。
0784デフォルトの名無しさん
2008/08/31(日) 02:42:37あああ!、申し訳ないです。'='←書くの抜けてました。
プログラム上ではちゃんと書いてます><
byte[] byteBuf = new byte[1024];
何度もすみません。
0785デフォルトの名無しさん
2008/08/31(日) 03:11:15コード 0x00 (NUL) が 0x5C 0x30 (\0) に変換される、と。
773 では、Content-Type に application/x-www-form-urlencoded を指定しています。
この指定自体は、form を送信する際の一般的な設定だと思います。
しかし、この指定によって、クライアントかサーバか、どちらか分かりませんが、
変換が行われてると、私は思います。
つ【パケットキャプチャ】かな?
0786デフォルトの名無しさん
2008/08/31(日) 03:33:00TableCellRenderer を見れ。
0787デフォルトの名無しさん
2008/08/31(日) 03:40:28>そのまま送り返して調べた結果では、
PHP が受け取ったモノをチェックしろよ。
送り返して調べたって、送り返す時にヘマしてたら分かんなくなるだろ。
0788デフォルトの名無しさん
2008/08/31(日) 10:26:08これの真ん中あたりにあるアプレット動く?
うちのXPだとIEでもFirefoxでも動かん。
0789デフォルトの名無しさん
2008/08/31(日) 11:31:320790デフォルトの名無しさん
2008/08/31(日) 11:34:44PHP側では
<?php
$p1 = isset($_REQUEST['p1']) ? $_REQUEST['p1']: '';
$p2 = isset($_REQUEST['p2']) ? $_REQUEST['p2']: '';
if ( $p1 ){
echo ($p1);
}
?>
としているのですが。
PHP側でも調べてみます。
0791デフォルトの名無しさん
2008/08/31(日) 11:43:07お前の書いたsetRequestMethodとsetRequestPropertyを一万回読み返せ
BASE64でエンコード/デコードするか、URLにエンコードするか、
Content-Typeをimage/jpegにするか、バラバラすぎる。
あと受け側がどう処理するかによって異なる。
0792デフォルトの名無しさん
2008/08/31(日) 13:31:240793717
2008/08/31(日) 15:31:20すんません。
実際に返されるインスタンスの型が問題であって
返り値の型をBaseクラスにしても全然解決になってないですね。
質問に答えてくださった先輩方ありがとう。
0794デフォルトの名無しさん
2008/08/31(日) 15:39:43どうしたら良い?
0795デフォルトの名無しさん
2008/08/31(日) 16:04:53x-www-form-urlencodedでバイナリ送るとか吹いたぞw
0796デフォルトの名無しさん
2008/08/31(日) 16:13:39入力したいのですが参考になるホームページが見つかりません。
参考になるサイトやブログを教えていただけないでしょうか。
0797デフォルトの名無しさん
2008/08/31(日) 16:38:000798デフォルトの名無しさん
2008/08/31(日) 16:55:19表示するプログラムを作りたいのですが(例えば「javaprogram」と入力したら
「aは3個含まれています」と表示されるような感じです。
どうすればできるでしょうか?相当考えたのですが…
何の構文やメソッドを使うのか…どうかヒントをば…
0799デフォルトの名無しさん
2008/08/31(日) 17:00:25ヒント:配列
0800デフォルトの名無しさん
2008/08/31(日) 17:13:040801デフォルトの名無しさん
2008/08/31(日) 17:41:51BufferedImage と ImageIcon の合わせ技。
0802デフォルトの名無しさん
2008/08/31(日) 17:44:52.createCompatibleImage(10,10);
これでいいのかな
0803デフォルトの名無しさん
2008/08/31(日) 17:48:501個のデータは登録できるのか?
できてないなら、無理すんな。
まずは単一で考えなよ
0804デフォルトの名無しさん
2008/08/31(日) 17:50:12・char[] にしてまわす
・StrigBufferにしてまわす
どちらでも好きな方を
0805デフォルトの名無しさん
2008/08/31(日) 18:54:53自分も質問なんだけど、テキストエリアの後ろに画像を入れるにはどうしたら良いのかな。
0806デフォルトの名無しさん
2008/08/31(日) 18:59:190807デフォルトの名無しさん
2008/08/31(日) 18:59:440808デフォルトの名無しさん
2008/08/31(日) 19:00:48背景に画像?
JScrollPaneのViewportに画像描画してJTextAreaを透明にってこと?
0809デフォルトの名無しさん
2008/08/31(日) 19:27:46すんません、調べてみたんですがどうしてもわからない・・・
CellRendererの中にクリックでアクティブになったセルに関する設定項目が見つからないっす。
説明が下手なんですが、わかりやすく言うと、クリックされたセルのある行は薄青になりますよね?
それとは別に、その薄青の行の中でクリックしたセルだけボーダーラインが太くなりますよね。
あの太いボーダラインをなくしたいんです。
setRowSelectionIntervalを利用すると行が薄青になるだけなので、テーブルのMouseListenerに
1 int rowIndex = jTable.getSelectedRow();
2 jTable.removeRowSelectionInterval(rowIndex, rowIndex);
3 jTable.setRowSelectionInterval(rowIndex, rowIndex);
とやってみたのですが、これだと2の部分では薄青だけ消えて、太いボーダーラインが残ってしまいます。
どうすりゃ消えるんでしょうか、、、
0810デフォルトの名無しさん
2008/08/31(日) 19:48:48vewportでやってみたのですが、イメージがやけに暗く表示されてしまいました。
バッファしてる間に暗くなるとかあるのかな・・・
0811デフォルトの名無しさん
2008/08/31(日) 19:56:39もうちょっと詳細を教えてくれないと何とも言えないよ
0812デフォルトの名無しさん
2008/08/31(日) 20:00:09出かけ先にいるので帰って見直してみます。
ありがとうございました。
0813796
2008/08/31(日) 20:12:47単一では出来ます。
ttp://www.atmarkit.co.jp/flinux/rensai/mysql09/mysql09b.html
を参考にコンパイル、MySQLの設定及びデータベースとテーブルも設定しております。
問題は、同じようなデータがありそれを複数同時に入力できないところです。
0814デフォルトの名無しさん
2008/08/31(日) 20:21:40最大10件とかならば、name-1, value-1 のように固定でHTMLに埋めてしまえ
完全可変にするならば、動的にJavaScriptでinputを作っていけばいい
0815デフォルトの名無しさん
2008/08/31(日) 20:23:18Swingの話かHTMLの話か解らない
SwingだったらTextAreaとLabelを配置したパネルを作って、それを配置する方が楽だし、再利用しやすい形になると思う
0816796
2008/08/31(日) 20:52:25すみません説明不足がありました。
仰るとおりHTMLのフォームはname[1],name[2]...のようにフォームに番号を付けています。
servletの方ではこれをループでMySQLに入力するようにしています。
また、名前(漢字)と数字なので先にループで配列に入力するといった方法も出来ませんでした。
JavaScriptによる入力ですが技術的に難しいです。
0817796
2008/08/31(日) 21:02:33もし、フォームに名前はあっても番号はない場合は登録せず
次のフォームを読み取らせ、ループは名前が無くなったら出るというシステムです。
長々となってしまいまして申し訳ありません。
0818デフォルトの名無しさん
2008/08/31(日) 21:05:260819デフォルトの名無しさん
2008/08/31(日) 21:06:140820デフォルトの名無しさん
2008/08/31(日) 21:08:23for(int i = 1; i < n; i++) {
getParameter("name[" + i + "]");
getParameter("value[" + i + "]");
}
0821796
2008/08/31(日) 21:13:43データは取得できるとは思うのですが、
データを保存またはMySQLに連続して登録するときはどのようにすればよろしいでしょうか。
0822デフォルトの名無しさん
2008/08/31(日) 21:24:00Valuesをつなげるか、何回もUpdateとかInsertする
0823デフォルトの名無しさん
2008/08/31(日) 21:42:17for(int i = 1; i < n; i++) {
getParameter("name[" + i + "]");
getParameter("value[" + i + "]");
insertOrUpdate(data);
}
commit();
0824デフォルトの名無しさん
2008/08/31(日) 22:37:08setAutoCreateRowSorter(true)を使っているのですが、
ソートを一時的に無効にしたい場合が生じました。
setAutoCreateRowSorter(false)ではだめなようなので、
setRowSorter(null)を使っているのですが、
このような方法でよいものでしょうか。
0825デフォルトの名無しさん
2008/08/31(日) 22:47:13APIドキュメントは読みましたか?
そこに書いてありませんか?
0826798
2008/08/31(日) 23:05:53ヒントありがとうございます。
ヒントを頼りにここまではできたのですが、
http://hisazin-up.dyndns.org/up/src/75650.java
文字列を入力するとwhile文が無限ループになります。
無限になるのはわかるんですが、何を入れれば無限がとめられるのかわかりません。
もうこれ以上しぼっても何にも出てこないので、どうか何が足りないのか指摘をお願いしますorz
0827デフォルトの名無しさん
2008/08/31(日) 23:06:51実現な無理なことって何?
※中間言語を介しているのでネイティブより遅いってのはナシ
0828デフォルトの名無しさん
2008/08/31(日) 23:08:16○ 実現が無理
0829デフォルトの名無しさん
2008/08/31(日) 23:08:28.....
}
こうして、読み込みと同時にループ判定ってのをJavaではよく使うよ。
0830デフォルトの名無しさん
2008/08/31(日) 23:15:120831798
2008/08/31(日) 23:22:32もうほんとありがとうございます。どっちのパターンでもできました。
未熟ですいません。途中泣きそうになってました。
教えていただいた知識はありがたく吸収させて頂いて、
完全体への糧とさせて頂きます。
0832デフォルトの名無しさん
2008/08/31(日) 23:23:390833デフォルトの名無しさん
2008/08/31(日) 23:24:47while (r.ready()) {}
がセオリーなんだけど・・・
アホな奴が書いた説明を読んだんじゃないの?
0834デフォルトの名無しさん
2008/08/31(日) 23:34:270835798
2008/08/31(日) 23:34:28ちょww
>>833
独学でやってるんですが、教科書にはその書き方はのってなかったですね。
でもちょっとした応用ですよね。気付かない自分の無力としておきます。
ありがとうございます。
0836デフォルトの名無しさん
2008/08/31(日) 23:37:550837デフォルトの名無しさん
2008/08/31(日) 23:39:14言いたいことは解るが、その場合は
while(r.ready()) {
System.out.println("文字列を入力して下さい");
String s = r.readLine();
if(s.equals("end")) break;
// 以下同様
}
と書かなくてはならないだろ。
そこまでちゃんと説明しないのはあまりにも無責任。
ついでにいえば、r.ready()がfalseになることは基本的にないからな、標準入力からとっているわけだし。
0838デフォルトの名無しさん
2008/08/31(日) 23:40:12こいつには「友達はいないだろうな」と感じるのは、俺だけなのかな・・・
0839デフォルトの名無しさん
2008/08/31(日) 23:43:040840デフォルトの名無しさん
2008/08/31(日) 23:44:180841デフォルトの名無しさん
2008/08/31(日) 23:45:400842デフォルトの名無しさん
2008/08/31(日) 23:52:42です。帰ってきました。
具体的には
JPanel panel = new GraphicPanel("image.jpg");
JTextArea area1 = new JTextArea();
JTextArea area2 = new JTextArea();
area1.setOpaque(false);
area2.setOpaque(false);
JScrollPane scrollA = new JScrollPane(area1);
JScrollPane scrollB = new JScrollPane(area2);
scrollA.getViewport().setOpaque(false);
scrollB.getViewport().setOpaque(false);
panel.setLayout(new GridLayout(2,1));
panel.add(scrollA);
panel.add(scrollB);
という形でやっているのですが・・
GraphicPanel()は、別クラスでイメージ名を渡すとそれがパネルの背景になります。
0844デフォルトの名無しさん
2008/08/31(日) 23:59:560845デフォルトの名無しさん
2008/09/01(月) 00:01:360846デフォルトの名無しさん
2008/09/01(月) 00:03:55だなw
0847805
2008/09/01(月) 00:06:480848805
2008/09/01(月) 00:13:08getViewport().setOpaque
どちらもやると透明になりました!!すれ汚しすいませんでした。
0849デフォルトの名無しさん
2008/09/01(月) 00:15:32VBの方が使ってる人多いし、VBアプリもいっぱいあるじゃん。
高校ではBASIC教えてんだから、何で大学とかでVBを教えないんだよ。オレ頭いい〜
0850デフォルトの名無しさん
2008/09/01(月) 00:19:54これ参考になるかな?
ttp://terai.xrea.jp/Swing/CentredBackgroundBorder.html
>>809
使ってるのはDefaultTableCellRendererだよな?
だとしたらgetTableCellRendererComponenメソッドをオーバーライドして、
super.getTableCellRendererComponenで取ってきたComponentを
JLabel(もしくはJComponent)でキャストしてやつを
setBorder(null)にすればうまく行く様な気がする。
0851デフォルトの名無しさん
2008/09/01(月) 00:37:46サン最高!
アムロ最高!
0852デフォルトの名無しさん
2008/09/01(月) 00:45:04FindBugsさんに怒られて不安になってしまいますた。
FileNotFoudExceptionとIOExceptionはメソッド単位で投げてます。
clearしているstreamは引数で与えているByteBufferです。
File file = new File(fileName);
FileChannel channel = null;
try {
channel = new FileOutputStream(file).getChannel();
channel.write(stream);
} finally {
// 事後処理
stream.clear();
if (null != channel) {
channel.close();
}
}
0853デフォルトの名無しさん
2008/09/01(月) 00:52:09しかしjvm runtimeも.net runtimeもほぼ同じことが出来るのに、なぜこれほどまでにMSは嫌われるのかが謎だな。
さらにwindowsのvb, c#で簡単なこと(例えばメディア・プレーヤ系とか)をわざわざjavaでやるのもまたなんとも香ばしい。
今の時代の主流OO言語風に言えば、.netで作ったライブラリをjvmから呼び出せば済むことなんじゃないの?
0854デフォルトの名無しさん
2008/09/01(月) 01:03:19どっかにあったような…海外だったかな?
0855デフォルトの名無しさん
2008/09/01(月) 01:30:28効率だけで物事を選ぶわけじゃないからだろ。
0856デフォルトの名無しさん
2008/09/01(月) 01:39:28ガッ
0857デフォルトの名無しさん
2008/09/01(月) 01:45:30それよりも、それらコーディックの類は特許の塊でもあるから、jvmで実装するよりもそういうのは特許に関心があるMSに任せといて、
それらメディア系のファイル使うときは、dotnetやjavaのライブラリAPIでアクセスできれば十分じゃないの?
h.264みたいな最先端の技術はさすがに専用のデコーダ兼表示端末(インテルPCとかかな)ないと実用じゃないだろうけど、
そうじゃなければ、昔からあるシェルのパイプ機能に毛が生えたのでいいよ。
特許がどうとか言うと、ライセンスとか裁判とかジャスラックとかウザイだろw
どうせおまえなんか法学部出身なわけでもなければ民事裁判やったことないんだろうしww
0858デフォルトの名無しさん
2008/09/01(月) 01:53:59Javaがデスクトップとかメディアに進出もいいけど、どうせ特許の壁にぶつかるし、出来ても所詮はネイティブであって、携帯電話でそのデコーダ(コーディック)が動くわけでもないし、
今必要なのは、swingみたいにコンポーネントやbeansを作ってくれればいいでない?
java/jvmの管理とかマネジメント充実も一通り終わったから、そろそろデスクトップのUIとかの方かなと思う。
0859デフォルトの名無しさん
2008/09/01(月) 02:42:310860デフォルトの名無しさん
2008/09/01(月) 03:35:070861デフォルトの名無しさん
2008/09/01(月) 08:04:21>833
の解説をお願いします。
reader.ready() は「次の読み込みがブロックされるかどうか」だけとの事ですので、例えば以下の場合には正常に動作しない場合もあるかと思います。(※クライアントからデータが未送信の場合)
Socket s = serverSocket.accept();
BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
while(reader.ready()) {/* 処理 */}
また、StringReader#ready() は常に true を返したりもします。
このような危険性がありながらなお ready() がセオリーとされる理由を御教示頂けないでしょうか
0862デフォルトの名無しさん
2008/09/01(月) 10:30:330863デフォルトの名無しさん
2008/09/01(月) 10:44:40たぶん君は、ストリームのことを大学で教えてもらえなかった哀れな人なんだろう。
まずstdinを(line!=null) ?とかでナル・チェックするのはマズイことを知れ。
0864デフォルトの名無しさん
2008/09/01(月) 12:13:46お返事ありがとうございます。
独学なので更に哀れな知識量しかなく、色々間違っているかと思います。
もう少々お付き合い下さい。すみません。
> stdinを(line!=null) ?とかでナル・チェックするのはマズイことを知れ。
との事ですが、その前に疑問を整理させて下さい。
元々の疑問は、「文字処理は ready()がセオリー」との発言でした。これは標準入力に限らず、Reader 系全般に当てはまるかと思います。
ここで、敢えて ready() をセオリーと言っていた事がよく分かりませんでした。
Reader#ready() は、「次の読み込みがブロックされるかどうか」を返す訳ですから、入力が無い == ブロックされる == false となり、例えば標準入力であれば、起動直後の入力が無い場合には
BufferedReader r = new BufferedReader(new InputStreamReader(System.in));
while (r.ready()) {/* 処理 */}
としてもループ内に入ることなく抜けてしまい、期待した動作はしないかと思います。
同様に、Socket から文字列を読み込む場合でも、通信状態に応じて、データパケットが届く前に ready() が実行される事もあるかと思います。
であるのに、ready() をセオリーとする理由がよく分からず、質問した次第です。
(ファイルからの入力に限定するのであれば、ready() がセオリーでも理解はできるのですが)
頭の悪い質問で申し訳ありませんが、回答をよろしくお願いします。
あと、stdin を null チェックするのはまずい、という理由もよく分かりませんでした。
System.in は null を返さない、とかそういう単純な理由ではありませんよね?
宜しければ一緒に教えて頂けないでしょうか
0865デフォルトの名無しさん
2008/09/01(月) 14:04:51stdin だろがなんだろが BufferedReader#readLine() だったら EOF->null だから当然チェックする。
>>833 >>863 の説明に期待するかw
で、Reader#ready() は「ブロックされるかどうか」じゃなく「ブロックされないかどうか」だ。
false だからといってブロックするとは限らないし、入力が無いとも言えない。
0866デフォルトの名無しさん
2008/09/01(月) 14:47:41JTableのsetVisibleだとテーブルを非表示にできないようなので、
JScrollPaneのsetVisibleを呼びたいのですが。
0867デフォルトの名無しさん
2008/09/01(月) 14:50:330868デフォルトの名無しさん
2008/09/01(月) 14:55:540869デフォルトの名無しさん
2008/09/01(月) 15:05:050870デフォルトの名無しさん
2008/09/01(月) 16:04:35thx!
0871デフォルトの名無しさん
2008/09/01(月) 16:41:30これだとラップクラスと同じになりますよね。
0872デフォルトの名無しさん
2008/09/01(月) 16:54:09java.langパッケージに属するクラスです
0873デフォルトの名無しさん
2008/09/01(月) 16:54:35Stringは基本データ型じゃないだろ。
0874デフォルトの名無しさん
2008/09/01(月) 16:59:340875デフォルトの名無しさん
2008/09/01(月) 17:09:000876デフォルトの名無しさん
2008/09/01(月) 17:12:200877871
2008/09/01(月) 17:23:02Stringはどう見ても基本データ型じゃないです
0878デフォルトの名無しさん
2008/09/01(月) 18:15:430879デフォルトの名無しさん
2008/09/01(月) 18:18:020880デフォルトの名無しさん
2008/09/01(月) 18:30:24言い方が悪かったです
(byte)0xff が-1でなく255になるようにしたいです
0881デフォルトの名無しさん
2008/09/01(月) 18:33:24b&0xFF
ってすりゃいいよ。
0882デフォルトの名無しさん
2008/09/01(月) 18:36:32((int) ((byte) 0x80)) & 0xff // 0x80 = 128
0883デフォルトの名無しさん
2008/09/01(月) 18:41:320884デフォルトの名無しさん
2008/09/01(月) 20:01:57返答ありがとうございました。
ひとまず、ready() の件はセオリーとは言えない、と認識して納得しました。
> で、Reader#ready() は「ブロックされるかどうか」じゃなく「ブロックされないかどうか」だ。
確かにその通りでした。大ボケこいてました。ご指摘ありがとうございます。
お騒がせしました。
0885デフォルトの名無しさん
2008/09/01(月) 20:17:22たとえば、java.io.Ready.read():Iのソース見たことないだろw
お前のようにいつまでも妄想してようじゃ上達しないんじゃない。
それなら、いつready()を使うんだろう?
0886デフォルトの名無しさん
2008/09/01(月) 20:21:34ready()とストリームついて知りたかったら、難しい解説本読むか、ちゃんと学校いけよw
2chでお手軽に聞くようなお手軽独学厨房にはもったいなくて教えてやんないww
0887デフォルトの名無しさん
2008/09/01(月) 20:25:17java.io.Ready.read・・・
0888デフォルトの名無しさん
2008/09/01(月) 20:32:57知識が浅いもので不快にさせてしまいましたら申し訳ありません
一応、判らないなりに、SunのJAVA5実装はReaderからStreamDecoder経由してio_util_md.c までは辿っています。
これ以上どこを見るといいのか教えて頂けますか
よろしくお願いします
0889デフォルトの名無しさん
2008/09/01(月) 20:33:29どうせargs[k]とかやってる程度の人だろうしww
0890デフォルトの名無しさん
2008/09/01(月) 20:39:34よっぽどのアホだな・・・
0891デフォルトの名無しさん
2008/09/01(月) 20:41:230892デフォルトの名無しさん
2008/09/01(月) 20:41:34日本語でおk
0893デフォルトの名無しさん
2008/09/01(月) 20:46:29そこまでソース追いかけても分からないならタコでしょw
Reader.read():Iが何でnativeでなくてnew char[1]なのかで十分分かると思うけど・・・
もしセンスがあればだけど、多分君はお勉強はできるけど・・・あんまし・・・ってタイプでしょうか?
というよりも、それならいつready()を使うわけ?
0894デフォルトの名無しさん
2008/09/01(月) 20:49:540895デフォルトの名無しさん
2008/09/01(月) 20:51:40バカには一生わかんねーよ
0896デフォルトの名無しさん
2008/09/01(月) 20:52:54共産党に入れ
0897デフォルトの名無しさん
2008/09/01(月) 20:57:20なんみょう〜
なんみょう〜
なんみょう〜
0898デフォルトの名無しさん
2008/09/01(月) 20:59:490899デフォルトの名無しさん
2008/09/01(月) 21:01:120900デフォルトの名無しさん
2008/09/01(月) 21:09:26リストはCでもつかうだろ。
0901デフォルトの名無しさん
2008/09/01(月) 21:38:21一生ナンミョウ〜やってろよww
0902デフォルトの名無しさん
2008/09/01(月) 21:49:04いや、使う用件はあるだろ。
0903デフォルトの名無しさん
2008/09/01(月) 21:52:350904デフォルトの名無しさん
2008/09/01(月) 21:54:110905デフォルトの名無しさん
2008/09/01(月) 21:56:58スレッド・セーフがどうとかこうとか適当な妄想を言ってたけど、アレはC#のスレだったか?
0906デフォルトの名無しさん
2008/09/01(月) 21:57:220907デフォルトの名無しさん
2008/09/01(月) 22:05:57Stringだけで十分だと思うのですが・・・
0908デフォルトの名無しさん
2008/09/01(月) 22:10:590909デフォルトの名無しさん
2008/09/01(月) 22:11:550910デフォルトの名無しさん
2008/09/01(月) 22:18:080911デフォルトの名無しさん
2008/09/01(月) 22:24:490912デフォルトの名無しさん
2008/09/01(月) 22:28:420913デフォルトの名無しさん
2008/09/01(月) 22:34:35悪いがそれは違うな。もう一度JAVAのオブジェクト指向プログラミングの技法とやらから初めて、一からやり直したらどうだろか?
0914デフォルトの名無しさん
2008/09/01(月) 22:38:00StringBufferはreverse()するとき良く使いますw
0915デフォルトの名無しさん
2008/09/01(月) 22:39:56メモリ的にも処理速度的もコストが高いんよ。
例えば、aとbとcの文字列を連結する場合に以下のような処理があったとすると
--------------------
String buffer = a;
buffer += b;
buffer +=c;
--------------------
StringBuffer buffer = new StringBuffer(a);
buffer.append(b);
buffer.append(c);
--------------------
Stringでは、 += bをしている処理は a に b の文字列を連結してる
のではなく、 aとbを連結したStringオブジェクトを新しく作ってる。
同様に +=c の処理でも 新しいStringオブジェクトを作ってる。
一方StringBufferでは、 .append(b) では 文字列を連結しているので
新しいStringBufferオブジェクトは作っていない。
つまり、新しいオブジェクトを作っていない(newしていない)分
メモリも速度も節約できるということ。
0916デフォルトの名無しさん
2008/09/01(月) 22:45:57答えられもしないくせに適当なこと言うな
0917デフォルトの名無しさん
2008/09/01(月) 22:46:22文字列の操作を行う場合は、って前提が抜けてなければ完璧な回答だったのにな
0918デフォルトの名無しさん
2008/09/01(月) 22:54:390919デフォルトの名無しさん
2008/09/01(月) 22:56:28かっこいい方法は無いですか?
0920デフォルトの名無しさん
2008/09/01(月) 23:00:000921デフォルトの名無しさん
2008/09/01(月) 23:01:090922デフォルトの名無しさん
2008/09/01(月) 23:01:300923デフォルトの名無しさん
2008/09/01(月) 23:03:470924デフォルトの名無しさん
2008/09/01(月) 23:09:04そんな数十行にもわたって書くことじゃないと思うけど、お前が噂のニートだろ?それに友達も一人もいない自宅警備員で、実際は、プログラムも作ったことない無能だろww
0925デフォルトの名無しさん
2008/09/01(月) 23:15:030926デフォルトの名無しさん
2008/09/01(月) 23:17:44ひとまず、標準入力の件に関しては
java ReaderClass < data.txt
といったデータの与え方をした場合の事なのではないかと理解しました。
確かに、この場合には間違いなく ready() の使い所と思います。
この理解は間違っているでしょうか?
0927デフォルトの名無しさん
2008/09/01(月) 23:18:52もう、そういうサイトはいっぱいあるし、一見丁寧に説明しているようでどうでもいいところが長いだけだし、その程度の説明じゃ人は来ないだろうけどww
たとえば、x=1; new StringBuffer(x)とかだと、その説明の効率的の指摘からすれば、逆に非効率になるんじゃないの?
知ったかぶっりの雑学知識を披露したのは、わからないでもないんだけどねぇ・・・それじゃ文系のITジャーナリストと同じムジナだな・・・
0928デフォルトの名無しさん
2008/09/01(月) 23:23:01「どこにも就職できなかったけど、All Aboutで拾ってもらいました!!」て感じのオーラが強いって言うか…
早稲田みたいなところの心理学科卒業で、All Aboutで「アロマがどうとかは心理的に〜」とか専門術語を使って妄想記事かいてるのは吹いたww
>>915は結局それと同じムジナ。もう無理しないで死んでいいよ。
0929デフォルトの名無しさん
2008/09/01(月) 23:24:08!
0930デフォルトの名無しさん
2008/09/01(月) 23:25:140931デフォルトの名無しさん
2008/09/01(月) 23:29:51その話の真意よりも、たぶん自宅警備員候補だろうし、人生苦労する奴なんだろうなと思った。
0932デフォルトの名無しさん
2008/09/01(月) 23:30:17そんな場合だからといってready()を使う必要なんてないよ。
10年ぐらいJava触ってて一度もready()を使ったことないけど、「入力が
なければ他の処理をする」という感じの疑似マルチスレッドぐらいしか
用途が思い付かない。で、そういうときは素直にマルチスレッドにする。
0933デフォルトの名無しさん
2008/09/01(月) 23:32:10>>926
そうか?
標準入力を使うのは、その元が手入力だろうがファイルだろうがttyだろうがとにかく
何かが送られてくるのを受けたいだけだからだろう。
ファイルからだから ready を使うとか考えるのは違うんじゃないか。
0934デフォルトの名無しさん
2008/09/01(月) 23:35:410935デフォルトの名無しさん
2008/09/01(月) 23:39:39あいつは正に素早く死んで欲しい。いつもおれは、寝る前には必ず神棚で手を合わせて「早く死んでくれって」祈ってるぐらいだし。
0936デフォルトの名無しさん
2008/09/01(月) 23:41:150937デフォルトの名無しさん
2008/09/01(月) 23:55:54リダイレクトで渡せば EOF が取れないだろうから ready() の出番・・・と思ったのですが、書き込んでから試したらきちんと EOF になりました(阿呆です)
何か根本的に道を間違えているようです。
標準入力 + ready() というキーワードにこだわり過ぎているのでしょうか。
(その辺りを離れて単純に ready() の使い道を考えるのであれば、932 さんの仰るような nio っぽい使い方が一番の使い所であるような気がします。)
0938デフォルトの名無しさん
2008/09/02(火) 00:03:55あんまりにもあんまりだと思って、StringBufferで書き換えてみたんだ。
でもベンチマークを取ってみると、1msも変わらなくてだな。
そのメソッドのほんの数行、DBをアクセスしてる部分が、処理時間の99%
以上を持っていってたんだ……。
0939デフォルトの名無しさん
2008/09/02(火) 00:15:580940デフォルトの名無しさん
2008/09/02(火) 00:18:380941デフォルトの名無しさん
2008/09/02(火) 00:19:360942デフォルトの名無しさん
2008/09/02(火) 00:20:070943デフォルトの名無しさん
2008/09/02(火) 00:22:330944デフォルトの名無しさん
2008/09/02(火) 00:23:200945デフォルトの名無しさん
2008/09/02(火) 00:23:47実際の所どの程度速度に影響するもの?
0946デフォルトの名無しさん
2008/09/02(火) 00:33:23夏の終わりの駆け込みかと思ってたけど、オマエ、本気なんじゃないのか?
0947デフォルトの名無しさん
2008/09/02(火) 00:34:48間違ってるな。
0948デフォルトの名無しさん
2008/09/02(火) 00:36:48そいつらへのアクセスが処理の多くを占めてたら、それなりに効いてくるんじゃないか?
特にマルチコア/マルチCPUだと、synchronizedの部分でメモリの同期化が行われるから、それなりに馬鹿にならないコストがかかるような気がする。
とは言え、Java7あたりだと、JITコンパイラが不要なロックを省略するような最適化をぶちかましてくれるらしいからな……。
0949デフォルトの名無しさん
2008/09/02(火) 00:36:50それは自分でやってみれば分かる事じゃん・・・
0950デフォルトの名無しさん
2008/09/02(火) 01:19:11StringBuffer:可変オブジェクト
っていう教科書にありそうなのではどうだw
0951デフォルトの名無しさん
2008/09/02(火) 03:03:11今となっては多分そんなには変わらない。
0952デフォルトの名無しさん
2008/09/02(火) 03:14:150953デフォルトの名無しさん
2008/09/02(火) 03:27:170954デフォルトの名無しさん
2008/09/02(火) 09:35:52実際(実装上)のところ多少はバッファがきいているから、BufferedInputStreamと同じように考えてよいのでしょうか。
他に気になるところはありますか?
0955デフォルトの名無しさん
2008/09/02(火) 09:39:19Eclipseはexeにするのに何使ってるんですかね?
0956デフォルトの名無しさん
2008/09/02(火) 10:48:08どうしてバッファされていると期待できるのかが理解できない。
ソースは見てないけど、バッファされないと思うぞ。バッファリングと
ランダムアクセスは相性悪いから。
0957デフォルトの名無しさん
2008/09/02(火) 10:53:37問題はバッファされているか・いないかじゃなくて、実用上問題ないかどうかだと思うが?
それと、ランダムアクセスとバッファが相性悪いのはどの辺りに根拠があるの?
0958デフォルトの名無しさん
2008/09/02(火) 11:07:420959デフォルトの名無しさん
2008/09/02(火) 11:09:370960デフォルトの名無しさん
2008/09/02(火) 11:17:54そろそろ死んだ方がいいんじゃないか?人生疲れただろ。
0961デフォルトの名無しさん
2008/09/02(火) 11:21:530962デフォルトの名無しさん
2008/09/02(火) 13:09:560963デフォルトの名無しさん
2008/09/02(火) 16:01:00Graphics gr = img.getGraphics();
gr.drawLine(x1,y1,x2,y2);
gr.dispose();
と毎回設定して廃棄しますが
グローバルで
Graphics gr = img.getGraphics();
としておいて、ローカルで
gr.drawLine(x1,y1,x2,y2);
だけで、ずっとgrを使いまわしてはだめですか?
0964デフォルトの名無しさん
2008/09/02(火) 16:23:10ずっと同じimgに描画するのなら
0965デフォルトの名無しさん
2008/09/02(火) 16:26:230966デフォルトの名無しさん
2008/09/02(火) 17:39:54みんな何使ってるの?
0967デフォルトの名無しさん
2008/09/02(火) 17:42:070968デフォルトの名無しさん
2008/09/02(火) 17:43:36閉じるのがいいね
0969デフォルトの名無しさん
2008/09/02(火) 23:22:310970デフォルトの名無しさん
2008/09/02(火) 23:27:100971デフォルトの名無しさん
2008/09/03(水) 00:00:03おでも三十で就職目指してます。
お互い頑張りましょう。
0972デフォルトの名無しさん
2008/09/03(水) 00:06:21ClassA、ClassBはループさせていて常に結果を出力しています。
ClassA{
if(hoge>0)
ClassF.setX(true);
else
ClassF.setX(false);
}
ClassB{
test.setEnable(ClassF.getX());
}
ClassF{
static boolean f;
static void setX(boolean bl){
f = bl;
}
static boolean getX(){
return f;
}
}
こんな感じのプログラムを書いたんですが、ClassBに反映されません
どこが間違っているんでしょうか?
それとも、別のクラスで同じ値を共有するのは無理なのでしょうか?
0973デフォルトの名無しさん
2008/09/03(水) 00:19:08ClassBに反映されないってどういう意味だ?
test.SetEnabledで思った値が取れてないってことか?
こんな擬似コードじゃ分からんけど、
もしループとやらが複数スレッドで同時に回し続けてるって意味なら、
ClassF.fへのアクセスを同期化する必要がある。
volatileにするかメソッドにsynchronizedつける。
0974デフォルトの名無しさん
2008/09/03(水) 00:19:34別スレッドならsynchronizedかvolatile必須だぞ。
要素が1個かつJava5.0以上なら、AtomicBoolean等でもいい。
0975デフォルトの名無しさん
2008/09/03(水) 00:24:53どうしても、幾つかのパケットを取りこぼします。
何か、効率良く処理できる方法はありませんか?
0976デフォルトの名無しさん
2008/09/03(水) 00:32:18ありがとうございます。
volatile static boolean f;
で望み度通りの結果を出すことができました。
0977デフォルトの名無しさん
2008/09/03(水) 00:37:50どーやってんだ
0978デフォルトの名無しさん
2008/09/03(水) 00:44:18変数が1個ならそれでいいけど、複数個ある場合はちゃんと同期取らないと変更途中のデータが読み出される可能性があるぞ。
詳しくは、マルチスレッドプログラミングに関する本を読んどけ。
0979デフォルトの名無しさん
2008/09/03(水) 00:46:00UDPならパケットが取れないことがあるのは前提じゃないのか
0980975
2008/09/03(水) 00:46:500981デフォルトの名無しさん
2008/09/03(水) 01:26:19答えは、UDPを使わないってことだな・・・
0982デフォルトの名無しさん
2008/09/03(水) 01:56:38効率良くポートを開いて効率良く受信しろ
0983デフォルトの名無しさん
2008/09/03(水) 02:23:25windows95/98のプラットフォーム向けのアプリなんでjdk1.2相当なんですが。
よろしくお願いします。
0984デフォルトの名無しさん
2008/09/03(水) 02:26:08Object obj;
...
val=(???)obj
ですが、???がコンパイル時未定の時のキャストです。
0985デフォルトの名無しさん
2008/09/03(水) 03:03:37???が未定なのにキャストした後でどうやって使うわけ?
0986デフォルトの名無しさん
2008/09/03(水) 03:15:12valの型にキャスト
0987デフォルトの名無しさん
2008/09/03(水) 03:34:55jdk1.5にある、val.getClass().cast(obj)
といった方が早いですね。これを1.2でやるにはどういうコードになるんでしょうか。
0988デフォルトの名無しさん
2008/09/03(水) 03:46:03キャストとパースの違いがよくわかりません
どなたか教えてください
0989デフォルトの名無しさん
2008/09/03(水) 04:35:02>>985 >>986 は無視かい・・・
Class#cast() は
>public T cast(Object obj) {
>if (obj != null && !isInstance(obj))
>throw new ClassCastException();
>return (T) obj;
>}
となってるから generic が無いと無理なんだと思っとけ。
それよりもこれを使うようなのは相当面相なプログラムだと思うが、
これを使わないですむようにするほうが後々の為になると思うぞ。
0990デフォルトの名無しさん
2008/09/03(水) 04:49:15使わないで済むように方法を探したんですけど、後々のためというより、ももともとターゲットが古くてこれしかないので聞いてるんですが?
知らないなら無理に御答えにならなくて結構ですけど、あなたはだいぶ妄想好きなんですねw
他に良い施策はありませんか?
0991デフォルトの名無しさん
2008/09/03(水) 04:59:34val=(???)objのあと、valをどう使うつもりなの?
型が決まっていなければvalのメソッドとかを呼び出すコードもvalを他のクラスに渡すコードも書けないんじゃない?
というかval自体の型はval=(???)objの前でどう宣言しているの?
objになりうるクラス共通にインタフェースを実装させて、そのインタフェースにキャストするとか、
全体のクラス設計を見直した方がいいと思う。
0992デフォルトの名無しさん
2008/09/03(水) 05:01:450993デフォルトの名無しさん
2008/09/03(水) 05:03:36お前の問題だから自分で捜せ
そんな態度じゃまともな人のレスも付かないよ
0994デフォルトの名無しさん
2008/09/03(水) 05:07:050995デフォルトの名無しさん
2008/09/03(水) 05:09:420996デフォルトの名無しさん
2008/09/03(水) 05:13:02あなたは、答えらず、それにたいした能力もないのに、そんなに人の庭が好きなんですか?
その設計とやらを知って、あなたは手伝ってくれるんですかねw
一つ忠告しておけば、首突っ込むのは程ほどにした方がいいですよ。
0997デフォルトの名無しさん
2008/09/03(水) 05:16:240998デフォルトの名無しさん
2008/09/03(水) 06:02:25コンパイル時に決定できない型は、キャストするのも代入するのも不可能也。
パース...parse...castに似ている部分もあるのか...
【初心者】Java質問・相談スレッド119【歓迎】
http://pc11.2ch.net/test/read.cgi/tech/1220388885/
0999デフォルトの名無しさん
2008/09/03(水) 07:51:271000デフォルトの名無しさん
2008/09/03(水) 07:53:5310011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。