X



Java入門・初心者質問スレ Part.11
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん (アウアウウー Sa07-jGB0)
垢版 |
2021/06/29(火) 11:42:34.74ID:iGYT4fi4a
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.10
https://mevius.5ch.net/test/read.cgi/tech/1585721355/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
0006デフォルトの名無しさん (ワッチョイ 23ad-LKIa)
垢版 |
2021/07/15(木) 21:45:21.10ID:GIuLsig00
俺は気にしない
0008デフォルトの名無しさん (ワッチョイ 13ad-E1rX)
垢版 |
2021/08/06(金) 02:59:59.87ID:0iXVoQ0n0
0009デフォルトの名無しさん (ワッチョイ 6eba-Yq60)
垢版 |
2021/08/13(金) 21:50:09.48ID:fohtIooD0
BufferedImage bf = null;
try {
bf = ImageIO.read(new File("‪C:\\Users\\CS\\Desktop\\imgs\\01.jpg"));
} catch (Exception e) {
System.out.println(e);
}
で画像ファイルを読み込もうとしているのですが、
javax.imageio.IIOException: Can't read input file!
Exception in thread "main" java.lang.NullPointerException
at imageProcesser.ImageProcesser.main(ImageProcesser.java:19)
とエラーが出て、ファイルが読み込めません。
画像ファイルはそのディレクトリにあるので、間違いはないと思うのですが、
何が原因なのでしょうか?
0011デフォルトの名無しさん (ワッチョイ 6eba-YgaZ)
垢版 |
2021/08/14(土) 21:10:34.59ID:jZ1IKQjS0
>>10
ペイントで保存し直しましたが、同じエラーが出ます。
0013デフォルトの名無しさん (ワッチョイ 4287-cJil)
垢版 |
2021/08/15(日) 07:20:00.05ID:CerJmE5J0
そのファイルは読み込めないというエラーが出ているのだからファイルがおかしいと考えるのが自然
jpgじゃなくてbmpにするとかパス文字列が間違ってる可能性を疑ってcドライブの直下を読み込むとかやってみたら
0015デフォルトの名無しさん (ワッチョイ 6eba-YgaZ)
垢版 |
2021/08/15(日) 22:11:37.63ID:bTJgFGNJ0
>>12
‪C:/Users/CS/Desktop/imgs/01.jpg
で試しても同じエラーでした。

>>13
Cドライブの直下に当該ファイルと新規作成したファイルを置き、ファイル存在を確認したところ、存在しない状態であることが分かりました。
Eclipseやコード自体はDドライブで実行しており、対象ファイルはデスクトップに置いている状態でが、パスなどの設定が必要だったのか調べてみます。

>>14
承知致しました。
0016デフォルトの名無しさん (ワッチョイ aebb-NTPF)
垢版 |
2021/08/16(月) 00:19:05.37ID:T09XJsj90
JavaでGUIアプリを作りたいのですが、JavaFXが今の流行なんでしょうか?
eclipseでJavaFXのプロジェクト作ってみたのですが、動かずでして。
JavaFXは標準のJavaから外れてしまったのが面倒。
swingの方がいいんでしょうか。
0018デフォルトの名無しさん (スプッッ Sdc2-Uwzp)
垢版 |
2021/08/17(火) 23:51:17.99ID:6gOpyHQGd
どうか教えてください
以下のようにarrayList要素を2つ含んだarrayListがあります。
alist = [["a","b","c"],["d","e","f"]]

["a","b","c"]を取得したい場合は以下です。
alist.get(0);

ではarrayList["d","e","f"]の"d"を取得したい場合はどのように書けばいいのでしょうか?

alist.get(0).get(0)とは書けませんでした。
0022デフォルトの名無しさん (ワッチョイ 9f2c-CDip)
垢版 |
2021/08/22(日) 18:23:38.25ID:TsBps+dy0
何に苦戦してて何を知るための本を探してるのか分からんな
○○で作ったHPってのも言語というよりフレームワークの方が重要じゃね
JavaScriptをJavaと言ってる可能性も否定できない
0027デフォルトの名無しさん (ワッチョイ 7fba-nzYM)
垢版 |
2021/09/05(日) 07:38:53.36ID:9yzpGtkL0
GUIで
--------------------------------------------------------------------
| -------------------------------- ------- |
| フォルダ: |※ここにフォルダパス表示 | |開く | |
| -------------------------------- ------- |
| |
| |
| -------------------------------- ------- |
| フォルダ: |※ここにフォルダパス表示 | |開く | |
| -------------------------------- ------- |
| |
| |
--------------------------------------------------------------------
のようなものを作りたいのですが、何かいい既存のクラスなどありますでしょうか?
※ユーザーが「開く」を押下してフォルダを選択したら、そのフォルダパスが表示されたい
0028デフォルトの名無しさん (ワッチョイ 675f-3QxQ)
垢版 |
2021/09/05(日) 09:57:18.10ID:Tib2sM5c0
>>27
そんな古典のようなものをなぜこんなところで聞くのか?
0030デフォルトの名無しさん (アウアウウー Sa8b-AvaG)
垢版 |
2021/09/05(日) 15:16:15.30ID:gmkxLdfJa
>>27
visualエディタでbeansを使いましょう
003532 (ワッチョイ f11d-xJJl)
垢版 |
2021/09/16(木) 22:41:00.67ID:V7qWonkI0
レスありがとうございます

今買おうか迷っている本は、「独習Java」と
「Java 入門編 ゼロからはじめるプログラミング」です(ともに翔泳社)
この2冊について読んだことのある方は感想とか頂けるとありがたいです
0036デフォルトの名無しさん (アウアウウー Sa5b-ONKb)
垢版 |
2021/09/17(金) 00:58:03.90ID:V8QoHgqCa
>>35
ひとつだけ言えることは
アプレットが非推奨な今
どっちもGUIにはたどりつかないよ
0040デフォルトの名無しさん (ワッチョイ bfe8-U9fS)
垢版 |
2021/09/18(土) 22:44:08.26ID:0vsZVB8h0
>>16
俺はProcessingにJavaのライブラリインポートして
ControlP5乗っけてGUIアプリ作ってる
0042デフォルトの名無しさん (ワッチョイ ffba-5CsD)
垢版 |
2021/09/20(月) 19:14:00.53ID:S8CEwZLU0
JPanelのインスタンスに巣複数個のJButtonを追加しており、各ボタンをプログラム上でクリック処理してみたいのですが、
どのようすればいいのでしょうか?
0043デフォルトの名無しさん (ワッチョイ ffba-5CsD)
垢版 |
2021/09/20(月) 19:49:30.57ID:S8CEwZLU0
自決しました。
for (Component c : getContentPane().getComponents()) {
if (c instanceof JButton) {
}
}
で大丈夫かと思います。失礼いたしました。
0045デフォルトの名無しさん (ワッチョイ 775f-+OLq)
垢版 |
2021/09/20(月) 23:36:43.05ID:qrQnPgn70
もう死んだと思うよ。
0046デフォルトの名無しさん (ワッチョイ b71d-W1il)
垢版 |
2021/09/21(火) 16:26:42.55ID:EACgI9Q10
質問です

// インデントはアンダースコアで表しています
public class MyClass {
__private final int num;
__public MyClass(int num) {
____this.num = num;
__}
__…
}

という文はエラーにならないですか?
変数numは、宣言時ではなく、コンストラクタに渡された瞬間から
定数扱いになるという理解でよろしいですか?
0047デフォルトの名無しさん (ワッチョイ 97f0-5CsD)
垢版 |
2021/09/21(火) 17:45:45.35ID:Z8q69Dvg0
blank final ね。大昔の 1.1 だか 1.0 あたりだとエラーになるんだっけか?

宣言された瞬間から(初期化されていない)定数扱い。
コンストラクタ(もしくはインスタンス初期化子)でないと初期化できない。
全てのコンストラクタで初期化されていないとコンパイルエラー。

コンストラクタ(もしくはインスタンス初期化子)以外の場所では初期化済み扱いになる。
005146 (ワッチョイ b71d-W1il)
垢版 |
2021/09/21(火) 23:06:07.07ID:EACgI9Q10
答えてくれた方、ありがとうございました
コードはFE試験を参照して抜き出しました、難解ですね…
005346 (ワッチョイ b71d-W1il)
垢版 |
2021/09/21(火) 23:48:58.74ID:EACgI9Q10
>>52
滅相もない…
読んでてよく理解できない箇所があったのでお聞きしただけですよ
0054デフォルトの名無しさん (ワッチョイ 9fad-QxrA)
垢版 |
2021/09/22(水) 13:30:08.07ID:Te29kBsr0
賢人?
0055デフォルトの名無しさん (ワッチョイ d75f-vKa4)
垢版 |
2021/09/23(木) 00:16:07.48ID:7zkOaZtd0
csvで¥,(カンマをエスケープしている)が含まれるデータを読み込みたいのですが
いつも通りにスプリットしてもエスケープ文字が邪魔します
何か良い方法ありませんか?
一つは¥,を全く別に置き換えてから
再度置き換えるなどを考えてます
0058デフォルトの名無しさん (ワッチョイ 1202-r+Xa)
垢版 |
2021/09/25(土) 19:05:34.60ID:wk1a5X2V0
客先(エンドユーザ)がどうしてもExcel使いたい場合などは解るが
システム間のデータやり取りCSVみたいなフォーマット要求してくる
アホなソフト屋どうにかしてほしいわ
0059デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/26(日) 22:53:38.34ID:K0n5mMQr0
>>55
\,を別の文字に置き換えるのがよいと思う

\がエスケープ文字に使われてるので
「\ + 任意の文字」に置き換えればいい

任意の文字はカンマ以外で他のエスケープシーケンスと被らなければ何でも良い
\cとかがわかりやすくていんじゃないかな

,でスプリットして要素を復元するときに\cを,に変換する感じ

\ → \\
, → \,
に変換されてるとするなら、こんな感じでreplaceだけで完全に復元できるはず
https://paiza.io/projects/JmNXy546I6CrIn48Z9L0kQ
0060デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/26(日) 22:56:50.47ID:K0n5mMQr0
>>58
どういう形式が良いのかな?
0061デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/26(日) 23:20:41.67ID:K0n5mMQr0
>>59
ごめんこれ間違ってた、取り下げます
0062デフォルトの名無しさん (ワッチョイ 162c-pveB)
垢版 |
2021/09/26(日) 23:57:45.54ID:5RNiLxHe0
CSV/TSV, JSON, YAML は一般的

これらの構造物に正規表現を使うのは、おかしい。
パーサーを使うべき

各データ(要素)内に、行区切り文字・列区切り文字・クォート文字などの特殊文字がある場合は、
その要素をクォート文字で囲む必要がある
0063デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 00:23:48.63ID:Rw+VRmCj0
>>55
修正しました
https://paiza.io/projects/JmNXy546I6CrIn48Z9L0kQ

\ → \\
, → \,
と変換されてる場合は

\\ → \ + 任意の文字
\, → \ + 任意の文字
の順番でreplaceすればOK
0064デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 00:30:10.03ID:Rw+VRmCj0
>>62
クオートで囲むのはCSVがRFC4180に従ってる場合でしょ
エスケープするのはRFC4180の形式ではないよ
エスケープするならクオートで囲む必要はないよ

RFCのCSVは扱いにくいんだよね
テキストの行数とCSVのレコード数が一致しないしパーサも結構複雑

エスケープ方式の方があきらかにコンピュータで処理しやすい
CSVのRFCは人類の負の遺産だと思う
006562 (ワッチョイ 162c-pveB)
垢版 |
2021/09/27(月) 01:15:28.39ID:nw6SPL1Y0
基本、自作したものは、バグるので使えない

CSV/TSV, JSON, YAML などは一般的だから、
たいていの言語の標準ライブラリにある

車輪の再開発はダメ。
開発・テストコストが掛かって、低品質になるから使えない
006662 (ワッチョイ 162c-pveB)
垢版 |
2021/09/27(月) 01:29:19.77ID:nw6SPL1Y0
例えば、Ruby のCSV で、
各要素内に、行区切り文字(改行)・列区切り文字(カンマ)・クォート文字(ダブルクォーテーション)がある場合。
要素内のクォート文字" は、連続する" で出力される

require 'csv'

input = <<"EOT"
"a""a","b,b",あ
"c
c","d\nd"
EOT

p input_ary = CSV.parse( input ) # 2次元配列
#=> [["a\"a", "b,b", "あ"], ["c\nc", "d\nd"]]

# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str

出力
"a""a","b,b",あ
"c
c","d
d"
0067デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 01:29:35.52ID:Rw+VRmCj0
>>65
Javaの標準ライブラリにはないよ
ここはJavaのスレだよ

ドメイン特化な軽量フォーマットを作るのは僕はありだと思うけどなあ
他人が作ったものが高品質とも限らないし標準ライブラリがバグってることもあるよ
ケースバイケースかな
0068デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 01:32:17.39ID:Rw+VRmCj0
>>66
それはRFCに従ってる感じっすね
RFCのCSVはテキストの行数とCSVの行数が一致しないから
grepコマンドでレコードを検索できないしwcコマンドでレコード数を調べることもできない
はなはだ使いにくいと思うんだよね、いわば前例踏襲だけで生き残ってるゴミ仕様だと思うんだよね、SMTPと同じですわ
もうええやろって思う
0069デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 01:39:54.38ID:Rw+VRmCj0
ちなみにJavaの標準ライブラリのString.splitは末尾の空文字列を無視するから
CSVのパースに使うと列の数が変わってしまう
標準ライブラリでもクセがあるから注意
車輪の再開発はケースバイケースだよ

いびつな車輪で走り続けるよりも、よりよい車輪を作って走ったが良いこともある
車輪の再開発だからダメだ、良いのだというものではないという話
0071デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 01:51:45.00ID:Rw+VRmCj0
>>70
replaceするだけの処理にライブラリ使ったら負けだと思う
0072デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 02:05:54.38ID:Rw+VRmCj0
RFCのCSVを読む場合はライブラリ使ったが良いだろうね
僕はふだんSuper CSVを使ってる

スピード重視ならuniVocityかSimpleFlatMapperかな
Super CSV、Opencsv、Apache Commons CSVは処理が遅い
0074デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 02:18:17.85ID:Rw+VRmCj0
>>73
お給料はどうやろうと変わらないっしょ
実利なんてないんですよ、好きにしたらええでしょ
0075デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 02:19:08.32ID:Rw+VRmCj0
僕はCSVのこと好きですけどね
Oracleの100倍好き
0076デフォルトの名無しさん (ワッチョイ 1202-r+Xa)
垢版 |
2021/09/27(月) 03:12:19.72ID:OxF6exWm0
CSVなど要求してくるところは仕様にエンコーディングすら記載してない
確認するとTextファイルはShift_JISが当たり前と思ってるアホで
フィールド長要件もShift_JIS換算バイト数だったりして糞面倒くさい
俺は大嫌いだ、CSVのコードなど1秒も時間かけたくないね
0077デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)
垢版 |
2021/09/27(月) 03:13:53.15ID:lACGcuZa0
CSV入出力は自作しないでライブラリ使うなあ。
ていうかCSVに限らずライブラリあるならそれ使って入出力をする。
学習や趣味であえて自作する場合は別として。
0078デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)
垢版 |
2021/09/27(月) 03:17:48.77ID:lACGcuZa0
>>76
多分そういうのってWindowsのExcelで読みたいんだろうね。あれCSVの拡張子にしとくとシフトJISとして読んでくれるので。TXTにしとけばウィザードになって文字コード指定も出来るけどな。
0079デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 03:21:30.20ID:Rw+VRmCj0
ExcelはBOM付きのUTF-8なら文字化けせずに開けるはず
008162 (ワッチョイ 162c-pveB)
垢版 |
2021/09/27(月) 05:30:09.04ID:nw6SPL1Y0
確かに、RFC のCSV は、
grep, wc などで、簡単には使えない

でも一般的だから、色々なアプリで読み込めるし、可搬性も高い
0082デフォルトの名無しさん (ワッチョイ 12b9-Ofnx)
垢版 |
2021/09/27(月) 13:15:39.03ID:te5SiAqx0
MinecraftでModの開発をしていたのですが昨日から突然コンパイルができなくなり,

>Process 'command 'C:\Program Files\Java\jdk1.8.0_251\bin\java.exe'' finished with non-zero exit value 1

というメッセージが表示されます. 調べてみたところ開発環境に問題があるようなんですが具体的に何が原因なのか分かりませんし,何かそういう操作をしたような覚えもありません.

開発環境としては1年前にインストールしたJDK1.8.0_251なんですが,別のバージョンで試した方がいいでしょうか? 原因や対処法わかる方いましたら教えて頂きたいです.
0085デフォルトの名無しさん (ワッチョイ de01-qci3)
垢版 |
2021/09/27(月) 14:22:43.64ID:Rw+VRmCj0
Gradleでビルドから実行までやってるんじゃないかなと思った
0086デフォルトの名無しさん (ワッチョイ 12b9-2yZa)
垢版 |
2021/09/27(月) 16:42:19.91ID:te5SiAqx0
>>83
レスありがとうございます
MOD_IDをmods.tomlに合わせて変えてみたんですが,Minecraftが起動すると

mods.toml missing metadata for modid ○○

と表示されて先に進めないです…

---- Minecraft Crash Report ----
// Don't be sad, have a hug! <3

Time: 21/09/27 16:34
Description: Mod loading error has occurred

java.lang.Exception: Mod Loading has failed
0087デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)
垢版 |
2021/09/27(月) 23:57:28.99ID:lACGcuZa0
>>79
あー。UTF-8のBOM入りってそこで使えるのか。
あんな無駄なもん何処で使うんだろうと思ったら。
0088デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)
垢版 |
2021/09/28(火) 00:00:21.68ID:qy0bUCok0
>>81
CSV用のgrepってあったらいいよな。
ライブラリ使えば簡単そうだからお題スレに出しておくかな。
0090デフォルトの名無しさん (ワッチョイ 6f71-+xwn)
垢版 |
2021/09/28(火) 10:04:42.17ID:4vkyN+pB0
Java演習問題(継承)について教えて欲しいです。(初心者です)

・スーパークラス
メンバ変数(private int):a,total
aのgetter,aのsetter

・サブクラス
メンバ変数(private int):b,c
b,cのコンストラクタ
メソッド(public):calculate (処理はtotal=b*c)

・実行用クラス
サブクラス test =new サブクラス(10,2)
test.calculate()

このときに、実行すると、
スーパークラスのtotalが参照できないとエラーがでます

解答例としては、サブクラスのcalculateメソッドが、
public void calculate(){
int total =b*c
setTotal(total)


となっているのですが、直接スーパークラスのメンバ変数totalに入れずに、
サブクラス内で別領域を作成して、それをsetする理由がよく分からないです...
0091デフォルトの名無しさん (ワッチョイ 6f71-+xwn)
垢版 |
2021/09/28(火) 10:15:11.29ID:4vkyN+pB0
↑訂正します。スーパークラスのsetter getterはaではなく(誤)、totalのsetter getterです。
0092デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)
垢版 |
2021/09/28(火) 10:22:29.05ID:wFK5NO290
>>89
使った方が楽じゃん。
0093デフォルトの名無しさん (ワッチョイ 12ad-ZF+H)
垢版 |
2021/09/28(火) 10:25:15.08ID:wFK5NO290
>>90
privateだからでは?
0094デフォルトの名無しさん (ワッチョイ 6f71-+xwn)
垢版 |
2021/09/28(火) 11:24:23.77ID:4vkyN+pB0
>>93
エラーとしては、「不可視です」と出力されるのですが、ググると、priveta をpublicで緩和するか、setterやgetterがあるか確認してなければ作成を検討する、という方法を見つけました
スーパークラスにtotalのsetterやgetterがあるのに何故かなと思って質問させてもらっています
0095デフォルトの名無しさん (ワッチョイ 1202-r+Xa)
垢版 |
2021/09/28(火) 13:54:13.60ID:mjYKbk3t0
getter/setterあるのに代入文使えないのは何故っての質問の意図か?理解するの難解すぎるw
javaには多言語にあるようなプロパティ構文はないgetter/setterといっても単なるメソッド
0096デフォルトの名無しさん (ワッチョイ 1202-r+Xa)
垢版 |
2021/09/28(火) 14:12:30.02ID:mjYKbk3t0
setter/getterを単なるメソッドというと誤解あるか?
フレームワーク使ったりJ2EEな領域になるとルールになる場合もあって説明が難しい
その様式はカルチャー以上、文法未満、どうせショートカット一発自動生成
0097デフォルトの名無しさん (ワッチョイ 6f71-+xwn)
垢版 |
2021/09/28(火) 18:57:17.79ID:4vkyN+pB0
>>96
色々後出しで申し訳ないです。
そもそも代入出来ないため、一旦別領域を経由して再度変数を入れないといけない、と理解しました。
助かりました、ありがとうございます。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況