Miten tätä koodia pitää muuttaa

Koodityttö

public class Formats {

public static NumberFormat numberformatter = new NumberFormat("#,###0.00");
public static WritableFont defaultfont = new WritableFont(WritableFont.TAHOMA, 10);
public static WritableFont headerfont = new WritableFont(WritableFont.TAHOMA, 10, WritableFont.BOLD);

private static WritableCellFormat number;
private static WritableCellFormat label;
private static WritableCellFormat PlainLabel;
private static WritableCellFormat header_dark;
private static WritableCellFormat header_light;

private Formats() {
}

/**
* @return the defaultfont
*/
public WritableFont getDefaultfont() {
return defaultfont;
}

/**
* @param defaultfont the defaultfont to set
*/
public void setDefaultfont(WritableFont defaultfont) {
this.defaultfont = defaultfont;
}

/**
* @return the headerfont
*/
public WritableFont getHeaderfont() {
return headerfont;
}

/**
* @param headerfont the headerfont to set
*/
public void setHeaderfont(WritableFont headerfont) {
this.headerfont = headerfont;
}

public static synchronized WritableCellFormat getNumber() throws WriteException {
if (number == null) {
number = new WritableCellFormat(defaultfont, numberformatter);
number.setBorder(Border.ALL, BorderLineStyle.THIN);
}
return number;
}

public static synchronized WritableCellFormat getLabel() throws WriteException {
if (label == null) {
label = new WritableCellFormat(defaultfont);
label.setBorder(Border.ALL, BorderLineStyle.THIN);
}
return label;
}

public static synchronized WritableCellFormat getPlainLabel() throws WriteException {
if (PlainLabel == null) {
PlainLabel = new WritableCellFormat(defaultfont);

}
return PlainLabel;
}

public static synchronized WritableCellFormat getHeader1() throws WriteException {
if (header_dark == null) {
header_dark = new WritableCellFormat(headerfont, numberformatter);
header_dark.setBackground(Colour.AQUA);
header_dark.setBorder(Border.ALL, BorderLineStyle.THIN);


}
return header_dark;
}

public static synchronized WritableCellFormat getHeader2() throws WriteException {
if (header_light == null) {
header_light = new WritableCellFormat(headerfont, numberformatter);
header_light.setBackground(Colour.LIGHT_TURQUOISE);
header_light.setBorder(Border.ALL, BorderLineStyle.THIN);


}
return header_light;
}
Ongelma on, että muotoilut eivät enää pysy, kun olio luodaan uudelleen. Apua kaivataan ASAP!

6

403

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • keksa1

      pysyy hengissä niin kauan kun yksikin Formats-luokan olio on hengissä. Itse asiassa ne luodaan kun eka Formats- luodaan ja ne pysyy hengissä niin kauan, kun ohjelma on hengissä.

      Koitas tehdä jonnekin yksi tuollainen Formats-olio ihan vaan istumaan. Teet sen sellaiseen luokkaan, joka pysyy käynnissä koko prosessisin ajan.

      • Koodityttö

        Kokeilin tulostaa yhden olion siellä, missä solu muodostetaan ja lisätään sheetiin (eli asetetaan solulle muotoilut ja sisältöarvo ja isketään se addcell-metodilla writablesheetiin). Sama muistiosoite tulostui kummallakin kerralla, mutta tokalla muotoilut olivat edelleen poissa. Tilanne nollautuu vasta, kun virtuaalikone sammuu.

        Siis olio pysyy olemassa mutta mitä ihmettä sille tapahtuu?


      • Koodityttö
        Koodityttö kirjoitti:

        Kokeilin tulostaa yhden olion siellä, missä solu muodostetaan ja lisätään sheetiin (eli asetetaan solulle muotoilut ja sisältöarvo ja isketään se addcell-metodilla writablesheetiin). Sama muistiosoite tulostui kummallakin kerralla, mutta tokalla muotoilut olivat edelleen poissa. Tilanne nollautuu vasta, kun virtuaalikone sammuu.

        Siis olio pysyy olemassa mutta mitä ihmettä sille tapahtuu?

        Semmoinen tuli vielä mieleen, että saattaisko vika liittyä excel-näkymän renderöimiseen?


      • foobarfoo
        Koodityttö kirjoitti:

        Semmoinen tuli vielä mieleen, että saattaisko vika liittyä excel-näkymän renderöimiseen?

        JExcelin faq löytyy maininta että cell formatterit eivät saa olla staattisia. Eli kokeileppa tuolla faqssa esitettyä tapaa tehdä toi solujen formatointi.

        http://jexcelapi.sourceforge.net/resources/faq/ -> getting the error message 'too many different cell formats'


      • Koodityttö
        foobarfoo kirjoitti:

        JExcelin faq löytyy maininta että cell formatterit eivät saa olla staattisia. Eli kokeileppa tuolla faqssa esitettyä tapaa tehdä toi solujen formatointi.

        http://jexcelapi.sourceforge.net/resources/faq/ -> getting the error message 'too many different cell formats'

        Saan virheilmoituksen non-static method cannot be referenced from a static context..


      • foobarfoo
        Koodityttö kirjoitti:

        Saan virheilmoituksen non-static method cannot be referenced from a static context..

        Eli joku staatttinen metodi yrittää kutsua olion metodia. Korjauksesta on vaikea sanoa mitään näkemättä koko koodia.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Useita puukotettu Tampereella

      Mikäs homma tämä nyt taas on? "Useaa henkilöä on puukotettu Tampereen keskustassa kauppakeskus Ratinan lähistöllä." ht
      Tampere
      146
      2785
    2. Asiakas iski kaupassa varastelua tehneen kanveesiin.

      https://www.iltalehti.fi/kotimaa/a/33a85463-e4d5-45ed-8014-db51fe8079ec Oikein. Näin sitä pitää. Kyllä kaupoissa valtava
      Maailman menoa
      363
      2012
    3. Leipivaaran päällä on kuoleman hiljaista.

      Suru vai suuri helpotus...
      Puolanka
      40
      1747
    4. Kuka rääkkää eläimiä Puolangalla?

      Poliisi ampui toistakymmentä nälkiintynyttä eläintä Puolangalla Tilalta oli ollut karkuteillä lähes viisikymmentä nälkii
      Puolanka
      35
      1658
    5. Meneeköhän sulla

      oikeasti pinnan alla yhtä huonosti kuin mulla? Tai yhtä huonosti mutta jollain eri tyylillä? Ei olisi pitänyt jättää sua
      Ikävä
      28
      1370
    6. Jos ei tiedä mitä toisesta haluaa

      Älä missään nimessä anna mitään merkkejä kiinnostuksesta. Ole haluamatta mitään. Täytyy ajatella toistakin. Ei kukaan em
      Ikävä
      94
      1213
    7. Määpä tiijän että rakastat

      Minua nimittäin. Samoin hei! Olet mun vastakappaleeni.
      Ikävä
      54
      1173
    8. Muutama kysymys ja huomio hindulaisesta kulttuurista.

      Vedakirjoituksia pidetään historiallisina teksteinä, ei siis "julistuksena" kuten esimerkiksi Raamattua, vaan kuten koul
      Hindulaisuus
      328
      945
    9. Jumala puhui minulle

      Hän kertoi sinusta asioita, joiden takia jaksan, uskon ja luotan. Hän kuvaili sinua minulle ja pakahduin onnesta kuulles
      Ikävä
      110
      938
    10. Annan meille mahdollisuuden

      Olen avoimin mielin ja katson miten asiat etenevät. Mutta tällä kertaa sun on tehtävä eka siirto.Sen jälkeen olen täysil
      Ikävä
      53
      782
    Aihe